如果n
是大于2的正整数,则表示modp(2^n-1,n)=1
且n
不是素数,那么n
称为2伪伪。找出所有小于2000的2伪伪,并且对于每个伪伪,输出伪伪数和它的主要除数。
这是我到目前为止所尝试的内容。顺便说一句,这是使用枫树。
for n from 2 to 2000 do
n, mod(2^n-1,n) isprime(n);
od;
我不知道还能在这做什么。
答案 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;