假设我们有一个正整数K,我们需要找到最小的正整数N,使得N可以被K整除,并且N仅包含数字1。我们必须找到N的长度。如果没有这样的N,则返回- 1。因此,如果输入为3,则输出为3。最小的答案为N = 111。

为了解决这个问题,我们将遵循以下步骤-如果k为偶数,或者k可被5整除,则返回-1

设置r:= 0和N = 1

当我在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

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐