用set()把列表变成集合就可解决重复平方根问题 from math import sqrt n=int(input()) for i in range(2,n): l=[1] a = 1 for j in range(2,int(sqrt(i))+1): if a>i: break else: if i%j==0: l.append(j) l.append(int(i/j)) a=a+j+int(i/j) if a==i: print(i,'its factors are',' '.join(str(k) for k in sorted(set(l))))
n=int(input()) for i in range(1,n+1): n=0 a=[] for j in range(1,i): if i%j==0: n+=j a.append(str(j)) if i==n: b=' '.join(a) print(i,'its factors are %s' % b) 我这个除了没考虑平方根因子的问题还有别的问题么