【问题描述】
设n是一个自然数,如果所有小于n的自然数的约数个数都小于n的约数个数,则n是一个Antiprime数。譬如:1, 2, 4, 6, 12, 24。
编一个程序:从antiprime.in中读入一个自然数n(1 <= n <= 2 000 000 00),计算不大于n的最大Antiprime数,并将结果输出到antiprime.out中。
【输入文件】
输入文件antiprime.in只有一个整数n。
【输出文件】
输出文件antiprime.out也只包含一个整数,即不大于n的最大Antiprime数。
【输入样例】
100
【输出样例】
60
【样例说明】
不大于100的最大Antiprime数是60.
【代码】
def f(n):
sum = 0
for i in range(1,n+1):
if n%i==0 :
sum+=1
return sum
if __name__ == '__main__':
f1 = open('antiprime.in', 'r')
f2 = open('antiprime.out', 'w')
n = int(f1.readline())
res_sum=0
res = 0
for i in range(1,n+1):
tmp = f(i)
if res_sum<tmp:
res_sum = tmp
res = i
f2.write(str(res))