def pow(base, exp):
ans = 1
for i in range(exp):
ans *= base
return ans
def is_prime(x):
if x == 1 or x == 0:
return False
for i in range(2, x - 1):
if x % i == 0:
return False
return True
for i in range(2, int(1e100)):
if is_prime(i) and is_prime(pow(2,i) - 1):
print(pow(2, i - 1) * (pow(2, i) - 1))
虽然慢了点,但是能很快找出前几个完美数。