Navigace: Hlavní stránka -> PASCAL -> 04 Cykly -> 04.23 Rozklad čísla na prvočinitele

MENU

04.23 Rozklad čísla na prvočinitele

Zadání:
Sestavte program, který provede rozklad zadaného čísla na prvočinitele.
Řešení:
Na začátku programu si vložíne do dělitele hodnotu 2 a dělíme zadané číslo tímto dělitelem do té doby, dokud
nenastane nenulový zbytek. Tuto oparaci provádíme cyklem WHILE. Po každém vydělení vytiskneme dělitele a číslo
vydělíme dělitelem. Pokud nastane nenulový zbytek, zvýšíme dělitele o 1 a operaci opakujeme do té doby, dokud
nebude mít číslo hodnotu 1.

Příklad pro číslo 120:
120 mod 2 = 0, vytiskneme 2 a podělíme číslo 120 div 2 = 60
60 mod 2 = 0, vytiskneme 2 a podělíme číslo 60 div 2 = 30
30 mod 2 = 0, vytiskneme 2 a podělíme číslo 30 div 2 = 15
15 mod 2 = 1, zvýšíme hodnotu dělitele o 1 na 3
15 mod 3 = 0, vytiskneme 3 a podělíme číslo 15 div 3 = 5
5 mod 3 = 2, zvýšíme hodnotu dělitele o 1 na 4
5 mod 4 = 1, zvýšíme hodnotu dělitele o 1 na 5
5 mod 5 = 0, vytiskneme 5 a podělíme číslo 5 div 5 = 1
číslo má hodnotu 1, program končí

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var cislo,delitel:integer;

begin

   write('Zadejte cislo: ');
   readln(cislo);
   write('Prvocinitele:');
   delitel:=2;

   repeat
      while cislo mod delitel=0 do
      begin
         cislo:=cislo div delitel;
         write(' ',delitel);
      end;
      delitel:=delitel+1;
   until cislo=1;

   readln;

end.
program ke stažení