Informatică, întrebare adresată de alexcraiova2014, 9 ani în urmă

Salut,

Am si eu o problema care trebuie rezolvata, in C, doar cu biblioteca iostream. Multumesc:

Un număr natural este perfect dacă dublul său este egal cu suma divizorilor săi.

Cerinţa
Să se scrie un program care verifică dacă un număr natural citit de la tastatură este perfect.

Date de intrare
Programul citește de la tastatură numărul n

Date de ieşire
Programul afișează pe ecran mesajul n este perfect, dacă n este număr perfect, respectiv n nu este perfect, în caz contrar.


Iulica1: Un numar se numeste perfect daca este egal cu suma divizorilor sai (inclusiv 1, mai putin el insusi)

Răspunsuri la întrebare

Răspuns de Iulica1
6
#include<iostream>
using namespace std;

int main()
{
int n,d,s=1;
cout<<"Dati numarul n=";
    cin>>n;
    s+=n;
    for(d=2;d<=n/2;d++)
        if(n%d==0)
            s=s+d;
    if(2*n==s)
        cout<<n<<" este perfect";
    else
        cout<<n<<" nu este perfect";
return 0;        
}

alexcraiova2014: Din pacate problema nu este buna, am primit 0 puncte pe pbinfo. http://www.pbinfo.ro/?pagina=detalii-evaluare&id=567955
Iulica1: Eu stiam ca un numar se numeste perfect daca este egal cu suma divizorilor sai (inclusiv 1, mai putin el insusi),si am rezolvat-o in acest fel,la tine in cerinte scrie ceva despre dublul numarului
Iulica1: si atunci la conditia if(n==s) schimbi in (if 2n==s)
Iulica1: Incearca acum, am vazut enuntul de pe pbinfo. Teoretic e acelasi lucru. Ori ca suma divizorilor (mai putin numarul) e egala cu numarul ori divizorii + numarul e egala cu dublul numarului.
Alte întrebări interesante