Přejít na hlavní obsah

Odvod všech dělitelů přirozeného čísla do Pascalu

  • Květa Müllerová
  • Tipy

Jedním z důležitých aspektů programování je práce s čísly. Často je nutné určit všechny dělitele přirozeného čísla. V Pascalu to lze snadno provést pomocí smyčky a podmíněných operátorů.

Co je dělitel přirozeného čísla

Například pro číslo 12 jsou děliteli čísla 1, 2, 3, 4, 6 a samotné číslo 12, protože každé z těchto čísel dělí 12 beze zbytku.

Počet dělitelů přirozeného čísla se může lišit. Existují čísla s velkým počtem dělitelů (např. číslo 12 má 6 dělitelů) a také čísla, která mají pouze dva dělitele (např. prvočísla, která mají dělitele pouze dva - 1 a samotné číslo).

Hlavní vlastnosti dělitelů přirozených čísel jsou, že každé přirozené číslo má minimálně dva dělitele-1 a samotné číslo a že dělitele přirozeného čísla jsou vždy přirozená čísla.

Jak najít všechny dělitele přirozeného čísla

1. Vezměte si dané přirozené číslo.

2. Přepočítejte všechna čísla od 1 do poloviny zadaného čísla. U každého čísla zkontrolujte, zda je beze zbytku rozděleno na dané číslo.

3. Pokud je číslo dělitelné beze zbytku, pak je toto číslo dělitelem daného čísla. Přidejte jej do seznamu dělitelů.

4. Po dokončení cyklu budete mít seznam všech dělitelů daného čísla.

Například pro číslo 12 budou dělitele: 1, 2, 3, 4, 6, 12.

Tento algoritmus umožňuje rychle a efektivně najít všechny dělitele přirozeného čísla.

program OutputDivisors;varNumber, Divisor: Integer;begin// Ввод натурального числаWrite('Введите натуральное число: ');Readln(Number);Writeln('Делители числа ', Number, ':');for Divisor := 1 to Number dobeginif Number mod Divisor = 0 thenWriteln(Divisor);end;end.

Příklad použití tohoto algoritmu:

Введите натуральное число: 12Делители числа 12:1234612
program PrintDivisors;varnum, i: integer;beginwriteln('Введите число:');readln(num);writeln('Делители числа ', num, ':');for i := 1 to num dobeginif num mod i = 0 thenwriteln(i);end;end.

Kód lze spustit ve vývojovém prostředí Pascal a zadat požadované číslo pro získání seznamu jeho dělitelů. Tento příklad umožňuje znát všechny dělitele přirozeného čísla a lze jej použít v různých úkolech souvisejících s rozkladem čísel na faktory nebo nalezením všech dělitelů čísla.

Chcete-li použít tento algoritmus v Pascalu, musíte postupovat podle následujících kroků:

  1. Oznamte a inicializujte proměnnou, která bude obsahovat dané číslo.
  2. Vytvořit cyklus, který překročí všechny možné dělitele čísla od 1 do zadaného čísla.
  3. Pro každé číslo v cyklu zkontrolujte, zda je dané číslo rozděleno beze zbytku.
  4. Pokud je dané číslo rozděleno beze zbytku na aktuální dělitel, vyberte aktuální dělitel a přidejte jej do seznamu dělitelů.
  5. Po ukončení cyklu vypište seznam dělitelů.

V důsledku provedení algoritmu získáte seznam všech dělitelů daného čísla.

Příklad 1:

program Dividers;varnum, i: integer;beginwriteln('Введите натуральное число: ');readln(num);writeln('Делители числа ', num, ':');for i := 1 to num dobeginif (num mod i) = 0 thenwriteln(i);end;end.

Příklad 2:

program Dividers;varnum, i: integer;beginnum := 30;writeln('Число ', num, ' имеет следующие делители:');for i := 1 to num dobeginif (num mod i) = 0 thenwriteln(i);end;end.

Složitost tohoto algoritmu závisí na samotném čísle a počtu jeho dělitelů. Nejhorším případem je situace, kdy je číslo jednoduché. V tomto případě bude obtížnost O (n), kde n je samotné číslo. Doba provádění algoritmu tedy bude lineárně záviset na čísle.

Pokud má však číslo velký počet dělitelů, složitost algoritmu bude menší než o(n). V takových případech se doba běhu přiblíží k o (√n), kde odmocnina z čísla je odmocnina. Je to proto, že nalezení všech dělitelů není nutné vyrábět až do samotného čísla, stačí zkontrolovat dělitele pouze před jeho druhou kořenem.

Jednou z hlavních funkcí Pascala je použití vestavěného cyklu for k zobrazení všech možných dělitelů čísla. V těle cyklu se kontroluje, zda je aktuální číslo dělitelem daného čísla. Pokud je, pak je dělitel přidán do seznamu dělitelů.

Programovací jazyk C++ používá k vyřešení tohoto problému smyčku for a integrovaný příkaz if. V těle cyklu se také kontroluje, zda je aktuální číslo dělitelem daného čísla, a pokud je, pak je dělitel přidán do seznamu dělitelů podobně jako Pascal.

Programovací jazyk Python používá k vyřešení tohoto problému také smyčku for, ale místo vestavěného příkazu if se používá příkaz if-else. V těle cyklu se kontroluje, zda je dané číslo děleno aktuálním dělitelem beze zbytku. Pokud sdílíte beze zbytku, je dělitel přidán do seznamu dělitelů.