9

n-1階乗を繰り返し見つけてチェックする通常の方法を知っています。しかし、これには O(n) の複雑さがあり、n が大きいと時間がかかりすぎます。代替手段はありますか?

4

1 に答える 1

15

はい、あります:nが素数の場合、明らかに(n-1)!で割り切れませんn

nが素数ではなくn = a * bwithのように書ける場合は、 と が含まれているため、a != b(n-1)!割り切れます。nab

がで割り切れない場合でもn = 4、素数 > 2 の場合は で割り切れます(コメントの Juhana に感謝します) 。(n-1)!nn = a * aa(n-1)!na2a(n-1)!

于 2012-10-21T11:14:42.943 に答える