通过简单的判断语句,优化双循环,大大降低运行时间。
while True: try: n = int(input()) res = 0 for i in range(2, n+1): yinzi = [] if i % 2 == 0: # 循环缩减一半 for j in range(1, i//2+1): if i % j == 0: yinzi.append(j) if sum(yinzi) == i: res += 1 elif i % 3 == 0: # 循环缩减2/3 for j in range(1, i//3+1): if i % j == 0: yinzi.append(j) if sum(yinzi) == i: res += 1 print(res) except: break