Informatică, întrebare adresată de Xcti, 8 ani în urmă

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 de DFH25
2

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;

}

Alte întrebări interesante