题解 | #完全数计算#
完全数计算
https://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84
n = int(input()) count = 0 # 从2到n遍历 for k in range(2,n+1): out = [] # 获取所有约数,以开方为中点,避免重复计算 for i in range(2, int(k**0.5+1)): if k%i == 0: out.append(i) out.append(k//i) # print(out) # print("{},{}".format(k,sum(out)+1)) # print() # 获取到目标就计数。题目答案有错误,1也是完全数,但没计入。 if sum(out)+1==k: # print(type(k)) # print(type(sum(out)+1)) # print(k) # print(out) count = count+1 # print("end") print(count) # print()