salut, am probleme cu un exercitiu de pe pbinfo #3272
asta e algoritmul meu, dar chiar nu stiu de ce nu merge
#include
using namespace std;
int main()
{
int n;
cin>>n;
int sum = 0;
for(int i=1; i<=n; i++)
{
int x;
cin>>x;
int inv=0;
while(x)
{
inv=inv*10+x%10;
x/=10;
}
for(int d=1; d*d<=inv; d++)
{
if(inv % d==0)
sum +=d;
sum += inv/d;
if(d * d == inv)
sum -= d;
}
}
cout << sum;
return 0;
} as dorii sa stiu unde am gresit
Răspunsuri la întrebare
Răspuns: Salut, algoritmul este foarte bun. Sunt totusi mici scapari cum ar fi acolade, long long la sum si #include<iostream>
In rest totul merge. Mai jos e codul cu cele lipsa adaugate. L-am testat pe pbinfo si a dat 100. Cu bold e ce am schimbat/adaugat.
Sper ca te-am ajutat :)
Explicație:
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
long long int sum = 0;
for(int i=1; i<=n; i++)
{
int x;
cin>>x;
int inv=0;
while(x)
{
inv=inv*10+x%10;
x/=10;
}
for(int d=1; d*d<=inv; d++)
{
if(inv%d==0)
{
sum += d;
sum += inv/d;
}
if(d * d == inv)
{
sum -= d;
}
}
}
cout << sum;
return 0;
}