Maximaで素数表を作るにはどう書くか? わたしは Prime(n):=block([a],for i:1 thru n do(a:next_prime(i)),a)$ と書いたが、 map(Prime,[1,2,3]); で [2,3,5] と出力され、一見上手くいったと思ったが、 map(Prime,makelist(i,i,1,20)); とすると、 [2,3,5,5,7,7,11,11,11,11,13,13,17,17,17,17,19,19,23,23] となってしまった・・・(笑) ほんとは [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71] と素数がならばないとダメなのに。。 Maxima詳しい方、教えていただきたいです。 ちなみに、原始根Primitiverootも一応コードを書いた。 PowerMod(a,b,p):=map(lambda([u],power_mod(a,u,p)),b)$ Primitiveroot(n):=block( [a:[],i,j:makelist(i,i,1,n-1)],for i:2 thru n-1 do ( if is(sort(PowerMod(i,j,n))=j) then a:endcons(i,a)),a)$ これは、例えば Primitiveroot(11); とすると [2,6,7,8] と出力され、最小原始根は11の場合2なので、あっている。(と思う)