Se citește și se afișează un vector având n valori numerice. Determinati valoarea maxima a nr perfecte
Răspunsuri la întrebare
Răspuns:
#include <iostream>
using namespace std;
int main()
{int n, i, pmax=0, v[30];
cout<<"n="; cin>>n; //citesc nr de elemente din vector
for(i=1; i<=n; i++) cin>>v[i] ; //citesc valorile componentelor din vector
for(i=1; i<=n; i++) //iau pe rnd elementele din vector
{int s=0; //pt fiecare initializez var s in care voi calcula suma divizorilor cu 0
for (int d=1; d<=v[i]/2; d++) //parcurg nr pe rand de la 1 la jumatatea nr
if(v[i]%d==0) s=s+d; //daca d e divizorul lui v[i] il adaug pe d la suma s
if(s==v[i] && v[i]>pmax) pmax=v[i]; /*daca nr e egal cu suma div sai (e perfect)
si este mai mare decat cel mai mare nr perfect de pana acum, reactualizez numarul perfect cel mai mare */
}
cout<<"cel mai mare nr perfect este "<< pmax;
return 0;
}
Explicație: