12.49-1. Napisati program za provjeru da li je upisani broj prost.
Opis rješenja: Provjera se izvodi izrazom n MOD i = 0. Ako je broj djeljiv ispisuje se poruka i završava provjera, inače provjera se ponavalja sve do SQR(i) > n.
Tekstualni algoritam:
- učitati broj (n)
- za i=1
- ponavljaj
3.1. i := i + 1
3.2. ako je n djeljivo sa i (n mod i = 0) ispiši da broj nije prost
3.3. sve dok je ne bude SQR(i) > n ili n mod i = 0
-
SQR(i) > n - kvadrat tekuće promjenjive je veći od testiranog broja završeno testiranje
- n MOD i = 0 pronađen djelilac testiranog broja.
- ako n nije djeljivo sa i (n MOD i <> 0) ispiši da je broj prost
Tabela . Savršeni brojevi
Listing programa |
Ekran |
Opis |
PROGRAM p12149001; |
|
Naslov programa |
USES |
|
Promjenljive |
WinCrt; |
|
|
VAR |
|
|
i, n : INTEGER; |
|
Naslov programa |
BEGIN |
|
|
WRITELN('Prost broj'); |
Prost broj |
|
WRITE('Broj '); |
Broj |
Početna vrijednost i |
READLN(n); |
7 |
|
IF n < 4 THEN |
|
|
WRITELN('Prost') |
|
|
ELSE |
|
|
BEGIN |
|
|
i := 1; |
|
Početna vrijednost i |
REPEAT |
|
Petlja |
i := i + 1; |
|
Uvečanje i |
IF n MOD i = 0 THEN |
|
broj djeljiv - nije prost |
WRITELN('Nije prost'); |
|
|
UNTIL (n MOD i = 0) OR ( SQR(i) > n); |
|
-
SQR(i) > n - kvadrat tekuće promjenjive je veći od testiranog broja završeno testiranje
- n MOD i = 0 pronađen djelilac testiranog broja. |
IF n MOD i <> 0 THEN |
|
ako n nije djeljivo sa i prost je broj |
WRITELN('Prost'); |
Prost |
n MOD i <> 0 - broj prost |
END; |
|
|
END. |
|
Kraj programa |
Listing programa:
PROGRAM p12149001;
USES
WinCrt;
VAR
i, n : INTEGER;
BEGIN
WRITELN('Prost broj');
WRITE('Broj ');
READLN(n);
IF n < 4 THEN
WRITELN('Prost')
ELSE
BEGIN
i := 1;
REPEAT
i := i + 1;
IF n MOD i = 0 THEN {broj djeljiv - nije prost}
WRITELN('Nije prost');
UNTIL (n MOD i = 0) OR ( SQR(i) > n);
IF n MOD i <> 0 THEN {ako n nije djeljivo sa i prost je broj}
WRITELN('Prost');
END;
END.
Index
|