Cod sursa(job #395807)
| Utilizator | Data | 13 februarie 2010 20:07:47 | |
|---|---|---|---|
| Problema | Suma divizorilor | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.42 kb |
#include <fstream>
#define NR 9901
using namespace std;
long long A, B;
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
int main()
{
fin >> A >> B;
int sol = 1;
while ( B )
{
if ( B % 2 )
{
sol *= A;
A *= A;
B /= 2;
}
}
int S = 1 + sol;
for ( int i = 2; i <= sol/2; i++)
if ( sol % i == 0 )
S += i;
fout << S % NR;
fin.close();
fout.close();
return 0;
}
