Python 中可被 K 整除的最小整数
假设我们有一个正整数 K,我们需要找到最小的正整数 N,使得 N 可以被 K 整除,且 N 仅包含数字 1。我们需要找到 N 的长度。如果不存在这样的 N,则返回 -1。因此,如果输入为 3,则输出为 3。最小的答案为 N = 111。
为解决此问题,我们将遵循以下步骤:
- 如果 k 为偶数或者 k 可以被 5 整除,则返回 -1
- 设置 r := 0 和 N = 1
- 对于范围 1 到 K + 1 内的 i
- r := (r * 10 + 1) mod k
- 如果 r = 0,则返回 i
我们看看以下执行情况,以获得更好的理解:
示例
class Solution(object): def smallestRepunitDivByK(self, K): if K%2==0 or K%5 ==0: return -1 r = 0 N=1 for i in range(1,K+1): r = (r*10 + 1)%K if r == 0: return i ob = Solution() print(ob.smallestRepunitDivByK(11))
输入
11
输出
2
广告