% primalita.m % Test per stabilire se un numero e' primo. % Ritorna 1 se n e' primo e 0 altrimenti. % ------------------------------------------------------------ function r=primalita(n) if n<=1; r=0; return; end % n<=1 ==> n non e' primo. if n==2; r=1; return; end % 2 e' primo. if mod(n,2)==0; r=0; return; end % Divisibilita' per 2. % Adesso controlla soltanto i divisori dispari e minori di radice di n. for i=3:2:sqrt(n) if mod(n,i)==0 r=0; return; % E' stato trovato un divisore: n non e' primo. end end % Nessun divisore e' stato trovato: il numero e' primo. r=1;