Сложность: 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 {
func isUgly(_ n: Int) -> Bool {
if n <= 0 {
return false
}
var n = n
for factor in [2, 3, 5] {
n = keepDividingWhenDivisible(n, factor)
}
return n == 1
}
private func keepDividingWhenDivisible(_ dividend: Int, _ divisor: Int) -> Int {
var dividend = dividend
while dividend % divisor == 0 {
dividend /= divisor
}
return dividend
}
}Ставь 👍 и забирай 📚 Базу знаний