アカウント名:
パスワード:
どうすればいい?なるべく簡単な方法で、Linuxでしたいです。てか、いろんな言語で書いてってください。
Pythonだと計算は一瞬ですね。元々、Pythonは多倍長整数をサポートしているので。
n = 2**57885161-1
ただ、これを10進数に変換するのは非常に時間がかかるみたいです。数分待っても出力できず(^^;)
print(n)
# 下から10桁切り出すと 1724285951 になります。
2時間待ってもprintされず・・・>下から10桁切り出すと 1724285951 になります。ってどうやってるんですか?
除算/剰余算は結構早く終わります。なので、
print(n % 10**10)
とすれば下から10桁の切り出しはすぐ求められますね。
# 10000桁分ぐらいだったらあまり時間はかからないので、divmod等で少しずつ10進数化していくほうがトータルでは早いのかも(^^;)
#!/usr/local/bin/python#coding:utf-8#2013-02-07
n = 2**57885161-1print 'n==',n
time ./ruijyou1.pyn== 5818872・・・4285951real 195m43.290s2.6GHz Quad-core Intel Xeon
やっぱり python は最高だぜ!
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日本発のオープンソースソフトウェアは42件 -- ある官僚
C言語で2^57885161-1を計算するには (スコア:0)
どうすればいい?
なるべく簡単な方法で、Linuxでしたいです。
てか、いろんな言語で書いてってください。
Re:C言語で2^57885161-1を計算するには (スコア:1)
Pythonだと計算は一瞬ですね。
元々、Pythonは多倍長整数をサポートしているので。
n = 2**57885161-1
ただ、これを10進数に変換するのは非常に時間がかかるみたいです。
数分待っても出力できず(^^;)
print(n)
# 下から10桁切り出すと 1724285951 になります。
Re: (スコア:0)
2時間待ってもprintされず・・・
>下から10桁切り出すと 1724285951 になります。
ってどうやってるんですか?
Re:C言語で2^57885161-1を計算するには (スコア:1)
除算/剰余算は結構早く終わります。なので、
print(n % 10**10)
とすれば下から10桁の切り出しはすぐ求められますね。
# 10000桁分ぐらいだったらあまり時間はかからないので、divmod等で少しずつ10進数化していくほうがトータルでは早いのかも(^^;)
Re: (スコア:0)
#!/usr/local/bin/python
#coding:utf-8
#2013-02-07
n = 2**57885161-1
print 'n==',n
time ./ruijyou1.py
n== 5818872・・・4285951
real 195m43.290s
2.6GHz Quad-core Intel Xeon
Re: (スコア:0)
やっぱり python は最高だぜ!