难以理解计算错误

时间:2018-11-09 08:05:40

标签: python

我已经写了一些代码,但是它一直没有得到正确的结果 我不明白是什么问题。 例如,我将其更改为range(2)并给它570和594,正确的答案是594 16但它给了我570 16,但在其他情况下它可以正常工作,我不知道它是什么。问题!

maxim=0
maxnum=0
def divisor(number):
    counter=0
    for i in range(0,number):
        if number%(i+1) == 0:
            counter+=1
    return counter


for i in range(20):
    num=int(input())
    divis=divisor(num)
    if maxim<divis:
        maxnum=num
        maxim=divis
        maxnum=num
print(maxnum,maxim)

2 个答案:

答案 0 :(得分:3)

p和594都有16个除数。仅当除数的数量大于当前maxnum时,才更改maxim。因此,由于第一个输入maxnum为570,所以输入570。像这样更改,

if maxim<=divis:
    if (maxim==divis and num>maxnum) or maxim<divis:
         maxnum=num
    maxim=divis

答案 1 :(得分:0)

您的最大更新条件为maxim<divis570594具有相同的divis,因此maxnum570