👤

Problema #3272 SumDivOgl de pe pbinfo - algoritmul meu obtine doar 40pct. Ce as mai putea sa-i fac?
Cerința
Se dau n numere naturale. Determinați suma divizorilor oglinditelor celor n numere.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.

Date de ieșire
Programul va afișa pe ecran numărul S, reprezentând suma cerută.

Restricții și precizări
1 ≤ n ≤ 1000
cele n numere citite vor fi mai mici decât 1.000.000.000

Algoritmul meu:
#include
#include
using namespace std;

int main()
{
int n, S=0, d, c, i, a, ogl=0;
cin>>n;
for(i=1; i<=n; i++){
cin>>a;
ogl=0;
while(a!=0){
c=a%10;
ogl=ogl*10+c;
a=a/10;
}
for(d=1 ; d*d if(ogl % d == 0)
S += d + ogl / d;
if(d * d == ogl)
S += d;
}
}
cout< return 0;
}