Algorytm przedstawię za pomocą języka programowania - C++.
Żeby zacząć naszą przygodę, trzeba najpierw zadać sobie pytanie - czym charakteryzuje się ta liczba?
Liczbą doskonałą nazywamy taką liczbę naturalną, która jest sumą wszystkich swoich dzielników właściwych, czyli wszystkich dzielników od niej mniejszych.
Najmniejszą liczbą doskonałą jest 6. Jej dzielniki to 6, 3, 2 i 1, a dzielniki właściwie to wszystkie oprócz 6, czyli 3, 2 i 1, co daje nam 3+2+1=6. Następną jest 28 (28 = 14 + 7 + 4 + 2 + 1), a kolejne to 496, 8128, 33550336, 8589869056 i 137438691328.
Kiedy wiemy już, co to jest liczba doskonała, zostaje tylko przedstawienie metody sprawdzania czy jest nią wybrana przez nas liczba x:
- na początku inicjalizuejmy zmienną suma_dzielnikow, czyli nadajemy jej wartość początkową równą 0 (do niej później będziemy dodawać kolejne dzielniki, wyliczone w programie);
- stosujemy instrukcję iteracyjną - pętle for i dla liczb z przedziału od 1 do x/2 (i=1; i<=x/2) sprawdzamy czy dana liczba i jest dzielnikiem liczby x; jeśli tak - to do suma_dzielnikow dodajemy i;
- jeśli suma_dzielnikow jest równa x, to x jest liczbą doskonałą
Żeby lepiej zrozumieć ten sposób postępowania, możemy go przedstawić następującym schematem blokowym:
Źródło: www.algorytm.org
Teraz napiszemy program, który sprawdzi czy dana liczba x jest liczbą doskonałą.
Wejście: w pojedynczym wierszu wejścia znajduje się liczba naturalna x.
Wyjście: w pojedynczym wierszu wyświetlany jest napis:
- "TAK" - kiedy x jest liczbą doskonałą;
- "NIE" - kiedy x nie jest liczbą doskonałą.
Tak wygląda kod:
kod wyświetlany przez: Syntax Highlighter
Brak komentarzy:
Prześlij komentarz