Program Primo2; type naturale=0..MaxLongInt; var n:naturale; Function EstPrimo(n:naturale):boolean; var k:naturale;primo:boolean; begin k:=1;primo:=true; while (k*k<=n) and primo do begin k:=k+2;primo:=(n mod k >0) end; EstPrimo:=primo end; BEGIN writeln('Test di primalita'' con funzione.'); repeat repeat write('n (>3 e dispari, <=3 per fine) ='); readln(n) until n mod 2 >0; if EstPrimo(n) then writeln(n,' e'' primo') else writeln(n,' e'' composto') until n<=3 END.