Ciao,
Non sono praticissimo di Python, ma secondo me, il test
if (a-i) in l == True:
eseguito in questo modo dovrebbe valutare la presenza di a-i nel valore True, quindi la lista non viene mai popolata.
Prova a correggere il codice in questo modo e vedi se da il risultato che ti aspetti:
def gold(a):
l = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97] # numeri primi 1 - 100
lfin = [] # lista che restituisco alla fine contenente i numeri primi che formano 'a'
for i in l:
if (a-i) in l: # se a - il numero primo corrente è un numero della lista
lfin.append(i) # aggiungo il numero corrente alla lista
lfin.append(a-i) # e aggiungo alla lista il numero primo che sommato 'i' fa 'a'
return lfin
TheTruster