我试图弄清楚这个问题。
编写一个过程 ,primeset
其输入是一个正整数 n,其输出是所有素数 p 的集合,使得 p 除以 n。
到目前为止,我已经尝试过以下方法。这是使用枫木。
primeset:=proc
# Determine if n is divisble by p:
local p;
for p from 1 to n do
if isprime(p) then # check divisibility by primes
if modp(n,p) = 0 then # check if divided by prime
return false;
end if;
end if;
end do;
return true;
end proc;
# VARIABLES:
# INPUT:
# n is a (positive) integer
# LOCAL:
# p is a (positive) integer.
# OUTPUT:
# output is the set of all primes p such that p divides n.
我的输出是这样的:
primeset := proc (n) local p; for p to n do if isprime(p) then if modp(n, p) = 0 then return false end if end if end do; return true end proc.
我试着在一些数字上运行它,比如 2,4 和 10,我得到的只是假的,假的,假的。
如果有人可以提供一些建议,那就太好了。