Răspuns:
#include <iostream>
using namespace std;
int n, s, k, d;
int main()
{
cin>>n;
for(d=1; d<=n/2; d++)
if(n%d==0) s+=d;
if(n==s) cout<<"n este nr perfect";
else cout<<"n nu este nr perfect";
return 0;
}
Explicație:
asta i rezolvarea, e corecta, sau cel putin compilatorul din c++ nu i gaseste nici un defect. Bafta!