263. Ugly Number
O texto da tarefa é traduzido do russo para o idioma selecionado. O código permanece sem alterações.
Уродливое number — это положительное inteiro, простые множители которого ограничены числами 2, 3 и 5.
given inteiro n, return true, если n является уродливым numberм.
Exemplo:
Input: n = 6
Output: true
Explanation: 6 = 2 × 3
C# solução
correspondente/originalpublic 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++ solução
rascunho automático, revisar antes de enviar#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 solução
correspondente/originalclass 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 solução
correspondente/originalclass 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 solução
correspondente/originalclass 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 solução
correspondente/originalpackage 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️⃣
Если данное inteiro n неположительное, return false, так как неположительное number не может быть уродливым.
2️⃣
Определите функцию keepDividingWhenDivisible, которая принимает два аргумента: делимое и делитель. Эта функция будет делить делимое на делитель до тех пор, пока оно делится без остатка. Функция returns измененное делимое. Последовательно примените эту функцию к n с делителями 2, 3 и 5.
3️⃣
Если после всех делений n равно 1, return true, иначе return false.
😎
Vacancies for this task
vagas ativas with overlapping task tags are mostradas.
Ainda não há vagas ativas.