Navigace: Hlavní stránka -> PASCAL -> 04 Cykly -> 04.21 Test čísla na prvočíslo

MENU

04.21 Test čísla na prvočíslo

Zadání:
Sestavte program, který určí, zda je zadané přirozené číslo prvočíslem.
Řešení:
Zadání vyřešíme použitím cyklu FOR. Zadané číslo postupně vydělíme všemi hodnotami od 2 do číslo-1. Pokud alespoň
při jednom dělení nastane nulový zbytek, nejedná se o prvočíslo a proto si vložíme do pomocné proměnné prvocislo
hodnotu false, která přepíše původní hodnotu true, kterou inicializujeme proměnnou prvocislo na začátku programu.
Po všech děleních otestujeme, zda v proměnné prvocislo zůstala hodnota true (zadané číslo je prvočíslem), nebo
byla přepsána hodnotou false (zadané číslo není prvočíslem).
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var c,i:longint;
    prvocislo:boolean;

begin

   write('Zadejte cislo: ');
   readln(c);

   prvocislo:=true;

   for i:=2 to c-1 do
      if c mod i=0 then prvocislo:=false;

   if prvocislo then writeln('Prvocislo')
                else writeln('Neni prvocislo');

   readln;

end.
program ke stažení
Pro učitele:
Příkaz for i:=2 to c-1 do lze pozměnit na for i:=2 to round(sqrt(c)) do, algoritmus proběhne výrazně rychleji. Zadané číslo nemusíme testovat všemi čísly z intervali 2..číslo-1, lze nahradit horní mez odmocninou ze zadaného čísla. Jelikož jsou v cyklu FOR požadovány ordinální hodnoty, musíme ještě odmocninu ze zadaného čísla zaokrouhlit na celé číslo.