[python] lekce 15 - ukol

Jan Jakubuv jakubuv na gmail.com
Čtvrtek Červen 5 19:39:14 CEST 2008


Dobry den,

treba takto:

print filter(lambda x: x[0]==x[1], map(lambda y: (y,sum(map(lambda x:
int(x)**5, str(y)))), xrange(10**4,10**5)))[0][0]

Jednoduse, projdete vsechny petimistna cisla, spoctete soucet patych
mocnin cislic a porovnejte. Tak jako na predchozim radku, ale abych
napsal citelnejsi reseni:

for cislo in xrange(10**4,10**5):
    mocniny = map(lambda x: int(x)**5, str(cislo))
    soucet = sum(mocniny)
    if cislo == soucet:
        print cislo
        break

Kdyby sand jeste nebyl jasny radek "mocniny = ..." tak doplnim ekvivalent:

s = str(siclo)
mocniny = [int(s[0])**5,int(s[1])**5,int(s[2])**5,int(s[3])**5,int(s[4])**5]

S pozdarvem,
   honza.



2008/6/5 Jakub <kuba.vlk na gmail.com>:
> Bry den, chtěl jsem se zeptat na spravné řešení úkolu z lekce 15, který
> zněl: /Najděte pětimístné číslo, které se rovná součtu pátých mocnin
> svých číslic. /Nějak mě nenapadá moc řešení, děkuji.
>
>        Jakub
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
>


Další informace o konferenci Python