数式処理ソフト DERIVE(デライブ) de ドライブ

5.DERIVEでもできないことは多い

前回は、整数の剰余を扱いました。
2^1024000という30万桁の数字の1067で割った余りは、簡単に計算できてしまいました。そのため、この程度の整数は、パソコンで容易に扱えるという印象を与えてしまったかも知れません。
しかしながら、その中でも注意したようにこの数は、特別な形の数であったので、その扱いが簡単だったということです。
たとえば、512^32+1という86桁程度の数、
「497323236409786642155382248146820840100456150797347717440463976893159497012533375533057」
これは、このように簡単に表示でき、素数でないことも容易に判定できるのですが、その素因数分解は、なかなかに困難です。すなわち、この数を割り切れる数は、何か、ということが簡単には分からないのです。
一方、512^32については、512^32=2^288というように分解は、すぐできてしまいます。
なお、数式処理ソフト DERIVE(デライブ)では、素数の判定は、PRIME(n)で行います。素数の時はtrue、素数でないときは、falseと表示されます。
整数の扱いについては、これ以上、深入りはしません。ただ、大きな数の素因数分解が容易にできないという事実(というより現状)が公開鍵暗号システムを支えていることは、知っておきたいですね。
DERIVEにもできないことは多い。理論的な武装は、やはり必要のようです。