无穷尽的输入,不知道原因
def divisor(r):
out = 1 # 最大约数初始化
while out == 1:
for i in range(2, r):
if r % i == 0:
r //= i
break
if i == r - 1:
out = r
return out
没有报错
问题就出在divisor()函数里,只要输入的数里有1或者2的n次方,比如4、8、16、32等,out就会陷入死循环,尝试修改成这样:
def divisor(r):
if r==1:return 1
out = 1 # 最大约数初始化
while out == 1:
for i in range(2, r):
if r % i == 0:
#r //= i
out = r//i
break
if i == r - 1:
out = r
return out
其实我觉得只要有整除就可以直接跳出while循环了,不知道你的思路如何?
最好把代码都发出来
代码用“插入代码块”贴文本内容,不要截个图