Cod sursa(job #756605)
Utilizator | Leotescu Vladut vladut_leotescu | Data | 9 iunie 2012 23:02:59 |
---|---|---|---|
Problema | Suma divizorilor | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Remember Mihai Pătrașcu | Marime | 0.56 kb |
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
freopen("sumdiv.in","r",stdin);
freopen("sumdiv.out","w",stdout);
long long a,b,s=1,x,d;
scanf("%d%d" ,&a,&b);
for(int i=0;i<b;i++)
s=s*a;
int sdiv=s+1;
for(d=2;d*d<s;d++)
if(s%d==0)
sdiv=sdiv+d+s/d;
if(d*d==s)
sdiv+=d;
if(sdiv<1901)
cout<<sdiv;
else
{
if(sdiv%1901==0)
cout<<"0";
else
{while(sdiv>1901*2)
sdiv/=1901;
x=sdiv-1901;
cout<<x;
}
}
return 0;
}