--PROGRAMMA : Divisore di un numero N E N* --AUTORE : Petrini Geo --DATA UM : 02.02.2001 --AMBIENTE : Unix Gnatmake with ada.text_io, ada.integer_text_io, ada.numerics.elementary_functions; use ada.text_io, ada.integer_text_io, ada.numerics.elementary_functions; procedure mindivisore is N : NATURAL; function pari (N : NATURAL) return BOOLEAN is begin if N mod 2 = 0 then return TRUE; else return FALSE; end if; end pari; function dispari (N : NATURAL) return NATURAL is begin for i in 3..N+1/2 loop if N mod i = 0 then return i; exit; end if; end loop; return N; --considera N primo end dispari; begin put("Inserisci un numero naturale diverso da zero: "); get(N); new_line; if pari(N) then put("Il numero e' pari."); new_line; put("Il divisore piu' piccolo e' 2"); else put("Il divisore piu' piccolo e' "); put(dispari(N), width=> 0); end if; end mindivisore;