Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมตรวจสอบว่าเลขเป็น ugly number หรือไม่ใน Python

Ugly number: จำนวนที่เฉพาะตัวประกอบมีแค่ 2, 3, 5 เท่านั้น (1 ถือว่าเป็น ugly number)

ตัวอย่าง: 18 = 2 × 3 × 3 → True

อัลกอริธึม

  • ถ้า n < 0 → False
  • หาร n ด้วย 2, 3, 5 ซ้ำจนไม่ลงตัว
  • ถ้าเหลือ 1 → True มิฉะนั้น False

การนำไปใช้

class Solution:
    def solve(self, n):
        if n < 0:
            return False
        for factor in (2, 3, 5):
            while n % factor == 0:
                n //= factor
        return n == 1

ob = Solution()
print(ob.solve(18))  # True