Informatică
porto1
15

se citesc de la tastatura n numere naturale. sa se afiseze numerele care au cea mai mare suma a divizorilor proprii. (SUBPROGRAM)

+1
(1) Răspunsuri
Firuze

Ti-am facut o sursa in C++ de unde extragi subprogramul. Eu ti-am pus programul cu totul pentru a-l putea verifica. E o problema interesanta, destul de frumoasa. Sper sa-ti fie util programul. Succes! #include  using namespace std; int j, x, a[1005]; void sum_div(int n, int v[]) {     int w[1000] = {0}, k, d, i, m, s, maxx = 0;     for(i = 1; i <= n; i ++)     {         m = v[i];         s = 0;         for(d = 1; d * d < m; d++)         {             if (m % d == 0) s = s + d + m / d;         }         if (m == d * d)  s = s + d;         if (s > maxx) maxx = s, memset(w, 0, sizeof(w)), k = 1, w[1] = m;          else if(s == maxx) w[++ k] = m;     }     for(i = 1; i <= k; i ++) cout << w[i] << " ";     return; } int main() {     cin >> x;     for(j = 1; j <= x; j ++)      cin >> a[j];     sum_div(x, a);     return 0; }

Adaugă răspuns