以下是什么问题?
divisor = 1
divisors_d = 0
divisors_max = 0
divisors = []
divisors_number = []
start = int(input("Number:"))
for n in range(1,start+1):
if n % divisor == 0:
divisors.append(divisor)
divisor=divisor+1
divisors_d=divisors_d+1
if divisors_max<divisors_d:
c = n
divisors_number = divisors
del(divisors[:])
divisors_max = divisors_d
divisors_d = 0
elif n%divisor != 0:
divisor = divisor + 1
print("The number is: " + str(c))
print("Number of divisors is " + str(divisors_max))
print("The divisors are :" + str(divisors_number))
我试图解决这个问题已经有一段时间了,我无法让它发挥作用,有人可以告诉我它有什么问题吗?
答案 0 :(得分:0)
在您的代码中,您的缩进不是很好,算法存在一些问题,而且效率并不高。一个好方法是:
number=int(input("Enter a number: "))
num=0
maxnum=0
maxx=0
div=[]
maxdiv=[]
for i in range(1,number+1):
for x in range(1,i+1):
if i % x == 0:
num+=1
div.append(x)
if num>maxnum:
maxnum=num
maxx=i
maxdiv=div
num=0
div=[]
print("The number is "+str(maxx))
print("Its divisor count is "+str(len(maxdiv)))
print("Its divisors are "+str(maxdiv))
number = the limit number
num = used for counting divisors
maxnum = the maximum number of divisors
始终可以使用len(maxdiv)
请注意,我没有创建另一个变量来存储数字的最大除数,而是使用len(maxdiv)
来清理代码。
希望它有所帮助!