Cod sursa(job #1870655)
| Utilizator | Data | 6 februarie 2017 20:13:24 | |
|---|---|---|---|
| Problema | Suma divizorilor | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.73 kb |
#include <fstream>
#define mod 9901
using namespace std;
ifstream f ("sumdiv.in");
ofstream g ("sumdiv.out");
int a,b,p,suma=1,i;
int putere(int a,int b)
{
int t=a;
for(int i=2;i<=b;++i) a=(a*t)%mod;
return a;
}
int main()
{
f>>a>>b;
if(a%2==0)
{
while(a%2==0)
{
++p;
a=a/2;
}
p=p*b+1;
suma=(suma*(putere(2,p))-1)%mod;
}
for(i=3;i<=499999;++i)
{
if(a%i==0)
{
p=0;
while(a%i==0)
{
++p;
a=a/i;
}
p=p*b+1;
suma=(suma*(putere(2,p+1)-1)/(i-1))%mod;
}
}
g<<suma;
return 0;
}
