class Solution {
public:
int smallestNumber(int n, int t) {
}
};
3345. 最小可整除数位乘积 I
给你两个整数 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
相似题目
原站题解
golang 解法, 执行用时: 0 ms, 内存消耗: 3.9 MB, 提交时间: 2024-11-13 00:13:10
func smallestNumber(n, t int) int { for i := n; ; i++ { prod := 1 for x := i; x > 0; x /= 10 { prod *= x % 10 } if prod%t == 0 { return i } } }
cpp 解法, 执行用时: 0 ms, 内存消耗: 8.2 MB, 提交时间: 2024-11-13 00:12:56
class Solution { public: int smallestNumber(int n, int t) { for (int i = n; ; i++) { int prod = 1; for (int x = i; x; x /= 10) { prod *= x % 10; } if (prod % t == 0) { return i; } } } };
java 解法, 执行用时: 0 ms, 内存消耗: 40 MB, 提交时间: 2024-11-13 00:12:43
class Solution { int smallestNumber(int n, int t) { for (int i = n; ; i++) { int prod = 1; for (int x = i; x > 0; x /= 10) { prod *= x % 10; } if (prod % t == 0) { return i; } } } }
python3 解法, 执行用时: 0 ms, 内存消耗: 16.6 MB, 提交时间: 2024-11-13 00:12:30
class Solution: def smallestNumber1(self, n: int, t: int) -> int: for x in count(n): prod = reduce(mul, map(int, str(x))) if prod % t == 0: return x def smallestNumber(self, n: int, t: int) -> int: for i in count(n): prod = 1 x = i while x: x, d = divmod(x, 10) prod *= d if prod % t == 0: return i