Сложность: easy
Уродливое число — это положительное целое число, простые множители которого ограничены числами 2, 3 и 5.
Дано целое число n, верните true, если n является уродливым числом.
Пример:
Input: n = 6
Output: true
Explanation: 6 = 2 × 3
👨💻 Алгоритм:
1️⃣Если данное целое число n неположительное, верните false, так как неположительное число не может быть уродливым.
2️⃣Определите функцию keepDividingWhenDivisible, которая принимает два аргумента: делимое и делитель. Эта функция будет делить делимое на делитель до тех пор, пока оно делится без остатка. Функция возвращает измененное делимое. Последовательно примените эту функцию к n с делителями 2, 3 и 5.
3️⃣Если после всех делений n равно 1, верните true, иначе верните false.
😎 Решение:
class Solution:
def isUgly(self, n: int) -> bool:
if n <= 0:
return False
for factor in [2, 3, 5]:
n = self.keepDividingWhenDivisible(n, factor)
return n == 1
def keepDividingWhenDivisible(self, dividend: int, divisor: int) -> int:
while dividend % divisor == 0:
dividend //= divisor
return dividend
Ставь 👍 и забирай 📚 Базу знаний