(Python)
from sympy import nextprime, perfect_power
def ppupto(limit): # distinct proper prime powers <= limit
p = 2; p2 = pk = p*p; pklist = []
while p2 <= limit:
while pk <= limit: pklist.append(pk); pk *= p
p = nextprime(p); p2 = pk = p*p
return sorted(pklist)
def sum_of_pp(n):
pp = ppupto(n); ppset = set(pp)
for p in pp:
if p > n//2: break
if n - p in ppset and n - p != p: return True
return False
def a(n):
k = 2
while not sum_of_pp(k**n): k += 1
return k
|