Python 中能被 K 整除的最小整数
pythonserver side programmingprogramming
假设我们有一个正整数 K,我们需要找到最小的正整数 N,使得 N 能被 K 整除,并且 N 只包含数字 1。我们必须找到 N 的长度。如果不存在这样的 N,则返回 -1。因此,如果输入为 3,则输出为 3。最小答案为 N = 111。
要解决这个问题,我们将遵循以下步骤 −
- 如果 k 为偶数,或者 k 可以被 5 整除,则返回 -1
- 设置 r := 0 和 N = 1
- 对于 i,范围为 1 到 K + 1
- 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