263. Ugly Number
Уродливое number — это положительное số nguyên, простые множители которого ограничены числами 2, 3 и 5.
given số nguyên n, return true, если n является уродливым numberм.
Ví dụ:
Input: n = 6
Output: true
Explanation: 6 = 2 × 3
C# lời giải
đã khớp/gốcpublic class Solution {
public bool IsUgly(int n) {
if (n <= 0) {
return false;
}
foreach (int factor in new int[] {2, 3, 5}) {
n = KeepDividingWhenDivisible(n, factor);
}
return n == 1;
}
private int KeepDividingWhenDivisible(int dividend, int divisor) {
while (dividend % divisor == 0) {
dividend /= divisor;
}
return dividend;
}
}
C++ lời giải
bản nháp tự động, xem lại trước khi gửi#include <bits/stdc++.h>
using namespace std;
// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
public bool IsUgly(int n) {
if (n <= 0) {
return false;
}
foreach (int factor in new int[] {2, 3, 5}) {
n = KeepDividingWhenDivisible(n, factor);
}
return n == 1;
}
private int KeepDividingWhenDivisible(int dividend, int divisor) {
while (dividend % divisor == 0) {
dividend /= divisor;
}
return dividend;
}
}
Java lời giải
đã khớp/gốcclass Solution {
public boolean isUgly(int n) {
if (n <= 0) {
return false;
}
for (int factor : new int[] {2, 3, 5}) {
n = keepDividingWhenDivisible(n, factor);
}
return n == 1;
}
private int keepDividingWhenDivisible(int dividend, int divisor) {
while (dividend % divisor == 0) {
dividend /= divisor;
}
return dividend;
}
}
JavaScript lời giải
đã khớp/gốcclass Solution {
isUgly(n) {
if (n <= 0) {
return false
}
for (const factor of [2, 3, 5]) {
n = this.keepDividingWhenDivisible(n, factor)
}
return n === 1
}
keepDividingWhenDivisible(dividend, divisor) {
while (dividend % divisor === 0) {
dividend /= divisor
}
return dividend
}
}
Python lời giải
đã khớp/gốcclass 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
Go lời giải
đã khớp/gốcpackage main
func isUgly(n int) bool {
if n <= 0 {
return false
}
for _, factor := range []int{2, 3, 5} {
n = keepDividingWhenDivisible(n, factor)
}
return n == 1
}
func keepDividingWhenDivisible(dividend, divisor int) int {
for dividend%divisor == 0 {
dividend /= divisor
}
return dividend
}
Algorithm
1️⃣
Если данное số nguyên n неположительное, return false, так как неположительное number не может быть уродливым.
2️⃣
Определите функцию keepDividingWhenDivisible, которая принимает два аргумента: делимое и делитель. Эта функция будет делить делимое на делитель до тех пор, пока оно делится без остатка. Функция returns измененное делимое. Последовательно примените эту функцию к n с делителями 2, 3 и 5.
3️⃣
Если после всех делений n равно 1, return true, иначе return false.
😎
Vacancies for this task
việc làm đang hoạt động with overlapping task tags are đã hiển thị.