逆階乗 質問する

逆階乗 質問する

さて、N が与えられれば N を計算するのは簡単だということは誰もが知っています。しかし、その逆はどうでしょうか?

N! が与えられ、N を見つけようとしています - それは可能ですか? 興味があります。

ベストアンサー1

2 進数で Q=N! の場合は、末尾のゼロを数えます。この数を J と呼びます。

N が 2K または 2K+1 の場合、J は 2K から 2K の 2 進表現の 1 の数を引いた値に等しいため、追加した 1 の数が結果の 1 の数と等しくなるまで 1 を繰り返し加算します。

これで 2K がわかり、N は 2K か 2K+1 のいずれかになります。どちらであるかを判断するには、2K+1 の最大の素数 (または任意の素数) の因数を数え、それを使って Q=(2K+1)! をテストします。

例えば、Q(2進数)が

1111001110111010100100110000101011001111100000110110000000000000000000

(小さすぎて申し訳ありませんが、大きな数字を操作するためのツールが手元にありません。)

末尾のゼロは19個あり、

10011

次に増分します:

1: 10100
2: 10101
3: 10110 bingo!

つまり、Nは22か23です。23の素因数が必要で、23を選ばなければなりません(たまたま2K+1が素数だったのですが、これは計画していなかったので必要ありません)。つまり、23^1は23を割り切れますが、Qは割り切れません。

N=22

おすすめ記事