2-Pseudoprimes和输出

时间:2012-09-11 04:55:00

标签: maple

如果n是大于2的正整数,则表示modp(2^n-1,n)=1n不是素数,那么n称为2伪伪。找出所有小于2000的2伪伪,并且对于每个伪伪,输出伪伪数和它的主要除数。

这是我到目前为止所尝试的内容。顺便说一句,这是使用枫树。

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

我不知道还能在这做什么。

1 个答案:

答案 0 :(得分: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;