Liczby doskonałe

Kategoria: Zadania z programowania

Liczba doskonała to takie liczba, której suma wszystkich dzielników naturalnych – ale bez niej samej – jest równa tej liczbie. Umiejętność sprawdzenia czy dana liczba jest liczbą doskonałą może pojawić się na egzaminie maturalnych z informatyki.

Liczba doskonała

Liczb doskonałych jest bardzo mało. Przykładowe liczby doskonałe to 6, 28, 496 i 8128. Bardzo szybko rosną dlatego ciężko wyznaczyć ich dużą ilość. Aby sprawdzić czy dana liczba jest liczbą doskonałą wystarczy:

  1. znaleźć jej wszystkie dzielniki
  2. zsumować dzielniki i sprawdzić czy są równe naszej liczbie

Dzielnik naturalny dzieli daną liczbę bez reszty. Można bardzo łatwo sprawdzić czy liczba jest dzielnikiem jakiejś liczby wykorzystując operator dzielenia modulo.

Liczba doskonała C++

Algorytm nie jest zbyt optymalny, ponieważ polega na iteracji wszystkich liczb mniejszych od liczby sprawdzanej i poddaniu ich dzieleniu. Uważam, że w zupełności wystarczy na maturę:

#include <iostream>

using namespace std;

int main()
{
    int liczba;
    int suma = 0;

    cout << "Wpisz liczbe" << endl;
    cin >> liczba;

    // zsumuj dzleniki
    for (int i = 1; i <= (liczba / 2); i++)
    {
        if (liczba % i == 0)
        {
            suma = suma + i;
        }
    }

    if (suma == liczba && liczba > 0)
    {
        cout << "Liczba jest doskonala";
    }
    else
    {
        cout << "Liczba nie jest doskonala";
    }

    system("PAUSE >nul");
    return 0;
}

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *