我应该编写一个函数或脚本,使用“Eratosthenes筛”来避免不必要的存储,找到所有素数p小于给定整数n> 2的函数或脚本(I可以创建长度为n的矢量,但不多)如何编写使用Eratosthenes筛选列出素数的函数
n = input('Enter your number');
v=[1:n];
v(1)=0
for i=2:n
s=0;
for j=v(2)
if i>v(2) && mod(i,j)==0
s=s+1;
end
end
if s>0
v(i)=0;
end
end
for i=v(v>v(find(v,1,'first'))):n
s=0;
for j=v(v>v(find(v,1,'first')))
if i>v(v>v(find(v,1,'first'))) & mod(i,j)==0
s=s+1
end
end
if s>0
v(i)=0;
end
end
v
我知道这是从很远的是我米应该写的代码。但这是我想到的唯一想法,它只能删除可被2和3整除的数字,并且我需要找到所有素数,对每个条目重复此操作。这显然不够智能。但我觉得可以为此创建一个循环。但我没有编写这个循环。请帮忙。
什么是您的具体问题?请具体说一下,“为我解决这个问题”不是一个好问题。 – jazzbassrob 2013-04-25 19:19:36