2016-12-05 9 views
1

小さな数のオイラーズファイを計算するのは簡単で、そのような機能を提供する多くのオンラインサイトがあります。しかし、数字が本当に巨大なときは、2^128のようになりますか?どのようにしてこのような高い数値のオイラーピ関数を計算できますか?デスクトップPCを使用することはできますか?巨大な数のオイラーズフィー

+0

を破ります。 –

+0

デスクトップPCを使用する限り、メモリ容量に依存します。巨大な数は標準のものより多くのメモリを必要とします。また、どれくらいのデータがあるか、実行する必要のある処理量にも依存します。これはツールにも依存します。あなたのPCにソフトウェアを開発するためのツールがある場合、あなたのPCを使用することができます。 –

+0

いつでもすぐにデスクトップソリューションを見つけられないことを願っています。 – molbdnilo

答えて

1

あなたが素因数を知っているなら、はい。しかし、一般的には、少なくとも誰もが知っている方法では効率的に行うことはできません。 totient関数を一般的に計算することができれば、n = pqとすることができます.pとqは(p-1)(q-1)となる素数です。したがって、n - phi(n)= p + q - 1であり、p + q = cを知る。そして、(p + q)^ 2 = c^2であるので、p^2 + q^2 = c^2 - 2nとなる。しかし、(p-q)^ 2 = p^2 + q^2 - 2pq = c^2 - 4n。だから私たちはp + qとp-qを知っています。そこからpとqを得ることができます。

これは、「C++ビッグナンバーライブラリ」と「C++多倍長ライブラリ」をインターネットで検索RSA encryption

+0

私は3つの素数を持っていますか?私は2^290 * 29 * 53 =マイナンバー – Sick654

+0

@ Sick654を取得しました。[Euler's product formula](https://en.wikipedia.org/wiki/Euler's_totient_function)を直接使用することができます。簡単です。 – aah