Implementacja algorytmu w języku C++
Realizacja algorytmu w języku w C++
Napiszemy w języku C++ program rozkładający liczbę naturalną na czynniki pierwsze.
Specyfikacja problemu:
Dane:
liczba– liczba do rozłożenia na czynniki pierwsze; liczba naturalna większa od 1
Wynik:
Program wypisuje wszystkie czynniki pierwsze liczby liczba w jednym wierszu, po przecinku.
Zaczniemy od zdefiniowania zmiennej typu int. Użyjemy jej do przechowania wartości liczby rozkładanej na czynniki.
Następnie utworzymy pętlę for. Będzie ona działać aż do momentu, w którym zmienna liczba będzie równa 1. W pętli deklarujemy zmienną czynnik, która będzie oznaczała kolejne rozpatrywane przez nas potencjalne czynniki pierwsze. Będzie ona inkrementowana w każdej iteracji. Jej wartością początkową jest 2, ponieważ jest to najmniejsza liczba pierwsza.
Wewnątrz pętli for umieścimy pętlę while. Pętla while wykonuje się, dopóki reszta z dzielenia zmiennej liczba przez czynnik wynosi 0 (czyli dopóki zmienna czynnik jest podzielnikiem rozkładanej liczby).
Mamy zatem program, który rozłoży daną liczbę na czynniki pierwsze:
Możemy jednak stworzyć bardziej optymalny algorytm. Zauważmy, że nie jest konieczne sprawdzanie wszystkich czynników, aż wartość liczba wyniesie 1.
Każda liczba złożona, ma maksymalnie jeden czynnik pierwszy większy od jej pierwiastka.
Liczba 27, po rozkładzie na czynniki pierwsze, to 3⋅3⋅3. Żaden z czynników zatem nie jest większy od pierwiastka tej liczby, wynoszącego 5,196...
Pierwiastek liczby 14 to 3,74..., a liczba ta po faktoryzacji to 2⋅7. Widzimy zatem, że tylko jeden czynnik pierwszy jest większy od jej pierwiastka.
W związku z tą obserwacją, możemy przerwać iterację w momencie, gdy czynnik podniesiony do kwadratu będzie większy od wartości liczba. Na końcu wypiszemy wartość zmiennej liczba, jeżeli jest ona większa od 1.
Napisz program, który pobierze od użytkownika liczbę naturalną, a następnie wskaże rozkład podanej przez użytkownika liczby na czynniki pierwsze.
Specyfikacja problemu:
Dane:
n– liczba do rozłożenia na czynniki pierwsze; liczba naturalna większa od 1
Wynik:
Program wypisuje, na standardowe wyjście, wszystkie czynniki pierwsze liczby n oddzielone spacją.
Porównaj swoje rozwiązanie z zaprezentowanym w filmie.

Film dostępny pod adresem /preview/resource/R17ANmE6L093q
Film nawiązujący do rozkładu liczby na czynniki pierwsze.
Słownik
rozkład liczby na czynniki pierwsze, czyli zapisanie dowolnej liczby naturalnej większej od 1 za pomocą iloczynu liczb pierwszych
liczba naturalna większa od 1, która ma tylko dwa dzielniki, dzieli się tylko przez 1 oraz przez samą siebie
liczba naturalna większa od 1 będąca iloczynem liczb pierwszych