我应该编写一个函数或脚本,使用“Eratosthenes 筛”找到所有小于给定整数 n>2 的素数 p,从而避免不必要的存储(我可以创建长度为 n 但不能更多的向量)
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 整除的数字,我需要通过对每个条目重复此操作来找到所有素数。这显然不聪明。但我觉得可以为此创建一个循环。但我没有编写这个循环。请帮忙。