在MATLAB中输出前N个素数的数组P(不使用素数,isprime,factor函数的函数)

问题描述 投票:0回答:1

[编写一个函数P = myNPrimes(N),该函数输出前N个素数的数组P,其中N是自然数。您的函数不应使用Matlab内置函数质数,isprime,factor。

有人可以帮我吗?

matlab function primes
1个回答
0
投票

这里是自定义函数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
© www.soinside.com 2019 - 2024. All rights reserved.