![]() | ![]() |
|
|
TESTO DEL PROBLEMA:
Creare un programma capace di identificare se un numero è primo oppure se non lo è.
ANALISI:
Per risolvere il problema si deve tener presente come trovare un numero primo; un numero 212i84c primo difatti è divisibile solo da 1 e da se stesso quindi nella risoluzione dell'algoritmo serve dividere il numero inserito dall'utente per ogni cifra intera minore ad essoe vedere se ha resto con l'operazione [mod] . Se il numero non ha resto solo in due casi (se stesso e uno) esso è primo, se viceversa il numero ha resto più di due volte allora esso non è primo.
Le variabili utilizzate sono state: [num] e [num1] per il numero inserito dall'utente;
[cont] utilizzato come contatore del ciclo "for";
[divi] usato per l'operazione di controllo del resto;
[trol] per controllare il numero di resti uguali a 0;
[olo] per ricominciare il programma a scelta dell'utente.
I cicli utilizzati sono stati: FOR TO DO per ripetere l'operazione di controllo del resto;
REPEAT UNTIL per ricominciare il programma a scelta dell'utente.
RAFFINAMENTO:
programma numeroprimo;
inizio
inserisci('Questo è un programma che riconosce i numeri primi!');
ricevi;
ripeti
inserisci('Inserire il numero che si vuole controllare');
ricevi(num);
b:=num;
per cont:=1 fino num esegui
inizio
s:=num mod b;
b:=b-1;
se s=0 allora
trol:=trol+1;
fine;
se trol<=2 allora
inserisci('Il numero inserito è un numero primo');
fine
altrimenti
inserisci('Il numero inserito non è primo');
fine;
inserisci('Si vuole controllare un altro numero');
inserisci('[s/n]');
ricevi(olo);
finchè olo='n';
fine.
PROGRAMMA:
program numeroprimo;
uses crt;
var num,trol,s,b,cont:integer;
olo:char;
begin
clrscr
gotoxy(13,5);
writeln('Questo S un programma che riconosce i numeri primi!');
gotoxy
readln
repeat
clrscr;
gotoxy(17,5);
writeln('Inserire il numero che si vuole controllare');
gotoxy
readln(num);
b:=num;
for cont:=1 to num do
begin
s:=num mod b;
b:=b-1;
if s=0 then
trol:=trol+1;
end;
clrscr;
if trol<=2 then
begin
gotoxy(20,5);
writeln('Il numero inserito è un numero primo');
end
else
begin
gotoxy(20,5);
writeln('Il numero inserito non è primo');
END;
gotoxy(34,7);
readln;
clrscr;
gotoxy(18,5);
writeln('Si vuole controllare un altro numero');
gotoxy
writeln('[s/n]');
gotoxy(36,9);
readln(olo);
until olo='n';
end.
Privacy |
Articolo informazione
Commentare questo articolo:Non sei registratoDevi essere registrato per commentare ISCRIVITI |
Copiare il codice nella pagina web del tuo sito. |
Copyright InfTub.com 2025