% Crivello di Eratostene. % % Dato n naturale, restituisce un vettore X di n elementi tale che % X(i) = 1 se i e primo; % X(i) = 0 altrimenti. % % Cioe': % 1:n = 1 2 3 4 5 6 7 8 9 ... % X = 0 1 1 0 1 0 1 0 0 ... % % Usa il "crivello di eratostene" per costruire il vettore X in % maniera efficiente. % ------------------------------------------------------------ function X=crivello(n) X=ones(1,n); X(1)=0; % 1 non e' primo. % I divisori "interessanti" j sono compresi tra 2 e radice di n. for j=2:sqrt(n) if X(j)==0 continue; % Se j non e' primo saltalo. end % Consideriamo i multipli di j, j escluso. for s=2*j:j:n X(s)=0; end end