Cod sursa(job #2141062)

Utilizator VarticeanNicolae Varticean Varticean Data 24 februarie 2018 09:48:48
Problema Suma divizorilor Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#define mod 9901
using namespace std;
ifstream in("sumdiv.in");
ofstream out("sumdiv.out");


long long  put( int a, int b )
{
     long long  p =1;
     while( b )
     {
          if( b % 2 )
          {
               p = p * a ;
               b--;
          }
          a = a * a  ;
          b /=2;
     }
     return p;
}
int main()
{
     int a,b;
     in >> a >> b;
     long long  rez = put(a,b);

     long long  sum = 0;
     for(long long  i=1; i*i<=rez; i++)
     {
          if( rez % i == 0 )
          {
               if( rez/i == i ) sum = sum + i ;
               else
               {
                    sum = sum + rez/i ;
                    sum = sum + i ;
               }
          }
     }
     out << sum % mod;

    return 0;
}