Informatică, întrebare adresată de Utilizator anonim, 9 ani în urmă

Ajutor!
Realizati un program c++

Un număr natural este pseudoperfect dacă este divizor al sumei divizorilor săi.
Să se scrie un program care verifică dacă un număr natural citit de la tastatură este pseudoperfect.Programul citește de la tastatură numărul n.Programul afișează pe ecran mesajul DA, dacă n este număr pseudoperfect, respectiv NU, în caz contrar.
Restrictii:
0 < n < 1.000.000.000
As vrea va rog frumos sa ma ajutati cu un program cu timp de executare cat mai rapid.
Va rog frumos!!!

Răspunsuri la întrebare

Răspuns de CRG
9
#include <iostream>
using namespace std;

int main(void)
{
    int suma_diviz, numar;
    cin >> numar;
    suma_diviz = 1 + numar; // numar este divizibil cu 1 si el insusi
    for (int i = 2; i <= numar / 2; ++i)
    {
        if (numar % i == 0)
        {
            suma_diviz += i;
        }
    }

    if (suma_diviz % numar == 0)
    {
        cout << "DA";
    }
    else
    {
        cout << "NU";
    }
    return 0;
}


Alte întrebări interesante