アカウント名:
パスワード:
どうすればいい?なるべく簡単な方法で、Linuxでしたいです。てか、いろんな言語で書いてってください。
もうちょっと条件を具体的に。・ubuntuやCentOS等で、新たなライブラリをインストールしない。 ただし、C、C++以外のスクリプト系で、止む得ない場合はOK。・2日以内に計算が終わる。(スクリプト系はこの制限守れなくても仕方ないか)・マルチスレッド化はOK。/* レス中のecho系は飽きた */
んなもん、プログラム書く必要もないだろ宇宙の答えも出せるGoogleさんにまかせれば...ほら
だめじゃん
http://www.wolframalpha.com/input/?i=2%5E57885161-1 [wolframalpha.com]Decimal approximationのMore digitsを気のすむまでクリックしてください。
完全なソリューションではないのですが,「先に解析的に解いてテーブルを作り, 後でそれをひく」というアプローチです。
2^n の1の位の数字は 2, 4, 8, 6, 2... と4乗周期で循環します。証明は2^(n+4) - 2^n ≡ 0 mod 1016 * 2^n - 2^n ≡ 0 mod 1015 * 2^n ≡ 0 mod 1015 * 2 * 2^(n-1) ≡ 0 mod 1030 * 2^(n-1) ≡ 0 mod 10です。57885161 ≡ 1 mod 4 なので 2^57885161 の1の位は2です。ですから 2^57885161 - 1の1の位の数字は1と言えます。
つまり, 1の位だけならばld[0] ='5'ld[1] ='1'ld[2] ='3'ld[3] ='7'としておいてld[power % 4]で求まります。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
犯人は巨人ファンでA型で眼鏡をかけている -- あるハッカー
C言語で2^57885161-1を計算するには (スコア:0)
どうすればいい?
なるべく簡単な方法で、Linuxでしたいです。
てか、いろんな言語で書いてってください。
Re:C言語で2^57885161-1を計算するには (スコア:0)
もうちょっと条件を具体的に。
・ubuntuやCentOS等で、新たなライブラリをインストールしない。
ただし、C、C++以外のスクリプト系で、止む得ない場合はOK。
・2日以内に計算が終わる。(スクリプト系はこの制限守れなくても仕方ないか)
・マルチスレッド化はOK。
/* レス中のecho系は飽きた */
Re: (スコア:0)
んなもん、プログラム書く必要もないだろ
宇宙の答えも出せるGoogleさんにまかせれば...ほら
だめじゃん
Re: (スコア:0)
http://www.wolframalpha.com/input/?i=2%5E57885161-1 [wolframalpha.com]
Decimal approximationのMore digitsを気のすむまでクリックしてください。
Re: (スコア:0)
完全なソリューションではないのですが,「先に解析的に解いてテーブルを作り, 後でそれをひく」というアプローチです。
2^n の1の位の数字は 2, 4, 8, 6, 2... と4乗周期で循環します。
証明は
2^(n+4) - 2^n ≡ 0 mod 10
16 * 2^n - 2^n ≡ 0 mod 10
15 * 2^n ≡ 0 mod 10
15 * 2 * 2^(n-1) ≡ 0 mod 10
30 * 2^(n-1) ≡ 0 mod 10
です。
57885161 ≡ 1 mod 4 なので 2^57885161 の1の位は2です。
ですから 2^57885161 - 1の1の位の数字は1と言えます。
つまり, 1の位だけならば
ld[0] ='5'
ld[1] ='1'
ld[2] ='3'
ld[3] ='7'
としておいて
ld[power % 4]
で求まります。