Răspuns :
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 <bits/stdc++.h>
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;
}
#include <bits/stdc++.h>
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;
}
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Ne dorim ca informațiile furnizate să vă fi fost utile. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, nu ezitați să ne contactați. Revenirea dumneavoastră ne bucură, iar pentru acces rapid, adăugați-ne la favorite!