2012-09-11 80 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;