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のひとつで、階乗さえ高速に求まればいいというお手軽さが素人の心をつかんで離さない。実際わかりやすいし。しかし、単純に判定するのと構成的に求めていくのとではロマンが違う。
3 件のコメント:
Pythonなんだから、1, 0じゃなくてTrue, Falseにしてくださいよ。
高級言語にはなじめないですね。ちなみに、Booleanがサポートされたのは2.3かららしい。
コメントを投稿