comments | difficulty | edit_url | tags | ||
---|---|---|---|---|---|
true |
简单 |
|
给你两个整数 n
和 t
。请你返回大于等于 n
的 最小 整数,且该整数的 各数位之积 能被 t
整除。
示例 1:
输入:n = 10, t = 2
输出:10
解释:
10 的数位乘积为 0 ,可以被 2 整除,所以它是大于等于 10 且满足题目要求的最小整数。
示例 2:
输入:n = 15, t = 3
输出:16
解释:
16 的数位乘积为 6 ,可以被 3 整除,所以它是大于等于 15 且满足题目要求的最小整数。
提示:
1 <= n <= 100
1 <= t <= 10
我们注意到,每
时间复杂度
class Solution:
def smallestNumber(self, n: int, t: int) -> int:
for i in count(n):
p = 1
x = i
while x:
p *= x % 10
x //= 10
if p % t == 0:
return i
class Solution {
public int smallestNumber(int n, int t) {
for (int i = n;; ++i) {
int p = 1;
for (int x = i; x > 0; x /= 10) {
p *= (x % 10);
}
if (p % t == 0) {
return i;
}
}
}
}
class Solution {
public:
int smallestNumber(int n, int t) {
for (int i = n;; ++i) {
int p = 1;
for (int x = i; x > 0; x /= 10) {
p *= (x % 10);
}
if (p % t == 0) {
return i;
}
}
}
};
func smallestNumber(n int, t int) int {
for i := n; ; i++ {
p := 1
for x := i; x > 0; x /= 10 {
p *= x % 10
}
if p%t == 0 {
return i
}
}
}
function smallestNumber(n: number, t: number): number {
for (let i = n; ; ++i) {
let p = 1;
for (let x = i; x; x = Math.floor(x / 10)) {
p *= x % 10;
}
if (p % t === 0) {
return i;
}
}
}