我應該編寫一個函數或腳本,使用「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