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

相关文章