def is_prime(n):
wilson = reduce(lambda x, y: x*y, range(1, n))
if wilson % n == n-1:
return 1
else:
return 0
print is_prime(1093)
実行結果
1
なんのことはないWilsonの定理。Fermatの小定理から得られるLennmaのひとつで、階乗さえ高速に求まればいいというお手軽さが素人の心をつかんで離さない。実際わかりやすいし。しかし、単純に判定するのと構成的に求めていくのとではロマンが違う。
Pythonなんだから、1, 0じゃなくてTrue, Falseにしてくださいよ。
返信削除このコメントはブログの管理者によって削除されました。
返信削除高級言語にはなじめないですね。ちなみに、Booleanがサポートされたのは2.3かららしい。
返信削除