Cod sursa(job #2141061)

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


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

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

    return 0;
}