2

が素数でないn2 より大きい正の整数である場合、は 2-疑似素数と呼ばれます。2000 未満のすべての 2-疑似素数を見つけ、各疑似素数について、疑似素数とその素約数のセットを出力します。modp(2^n-1,n)=1nn

これが私がこれまでに試したことです。ちなみにこちらはメイプルを使用。

for n from 2 to 2000 do
    n, mod(2^n-1,n) isprime(n);
od;

ここで他に何をすべきかわかりません。

4

1 に答える 1

0

必要なのは、if...then...fi(またはより現代的なif...then...end if.)を使用して構築された条件文です。

条件が満たされている場合は、目的の結果を印刷できます。

for n from 2 to 2000 do
    if `mod`(2^n-1,n) = 1 and not( isprime(n) ) then
        print(n, map(expand,{op(ifactor(n))}));
    fi;
od;
于 2012-09-12T05:08:55.617 に答える