2012-09-11 134 views
2

如果n是一个大于2的正整数,令人满意modp(2^n-1,n)=1n不是素数,那么n被称为2-pseudoprime。找出所有小于2000的2-伪序列,并且对于每个伪序列,输出伪序列及其主要因子集合。2-Pseudoprimes and output

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

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

我不知道这里还有什么要做。

回答

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;