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:

  1. učitati broj (n)
  2. za i=1
  3. 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.
  4. 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