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