Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania bez odpowiedzi
Viewing all articles
Browse latest Browse all 21942

Problem z programem sprawdzającym czy dana liczba jest liczbą doskonałą

$
0
0

Witam, mam taki problem, otóż mam za zadanie napisać program, który sprawdza czy dana liczba jest liczbą doskonałą. Posługując się algorytmem danym w zadaniu napisałem coś takiego :
 

#include <iostream>
#include <conio.h>
#include <math.h>

using namespace std;

int main()
{
    int n, p, p1, suma=0;

    cout << "Podaj liczbe ktora chcesz sprawdzic :";
    cin >> n;

    p = sqrt((double)n);

    while (p > 1)
    {
        if (n%p == 0)
        {
            suma = suma + p;
            p1 = n / p;
            if (p1 != p)
            {
                suma = suma + p1;
            }
        }
        else
        {
            p = p - 1;
        }
    }
    if(p<=1)
    {
        suma = suma + 1;
        if (suma==n)
        {
            cout << "Jest to liczba doskonala";
        }
        else
        {
            cout << "To nie jest liczba doskonala";
        }
    }

    _getch();
}


Po wpisaniu liczby n program po prostu przechodzi do następnej linijki i nic się nie dzieje. Nie do końca wiem o co chodzi. Z góry dzięki za pomoc.

Pozdawiam


Viewing all articles
Browse latest Browse all 21942