[编写一个函数P = myNPrimes(N),该函数输出前N个素数的数组P,其中N是自然数。您的函数不应使用Matlab内置函数质数,isprime,factor。
有人可以帮我吗?
这里是自定义函数myNprimes
function P = myNPrimes(N)
P = [];
k = 2; # start from first prime is 2
while 1
if length(P)== N # if P reaches length N, then break from while loop
break;
end
if sum(mod(k,2:floor(sqrt(k)))==0)==0
P(end + 1) = k; # if there is no factors from 2 to floor(sqrt(k)), then take this prime number to array P
end
k = k + 1; # increase k for next iteration of prime check
end
end
示例
>> myNPrimes(10)
ans =
2 3 5 7 11 13 17 19 23 29