Pagini recente » Cod sursa (job #2730095) | Cod sursa (job #1640760) | Cod sursa (job #2378919) | Cod sursa (job #2632998) | Cod sursa (job #2044904)
#include <iostream>
#include <cstdio>
#include <climits>
using namespace std;
long long a,b,c,rez;
int rp (long long n,int p, int mod)
{
int r=1;
while(p!=0)
{
if(p%2==0)
{
n=(n*n)%mod;
p=p/2;
}
else
{
r=(r*n)%mod;
p=p-1;
n=(n*n)%mod;
p=p/2;
}
}
return r;
}
int main()
{
freopen("calcul.in","r",stdin);
freopen("calcul.out","w",stdout);
scanf("%lld\n%x\n%lld", &a,&b,&c);
c=rp(10,c,INT_MAX);
a%=c;
long long p=a,r=0,cf=a+1,cnst=a*a%c;
if(b%2==0)
{
for(int i=0;i<b;i+=2)
{
r=(r+cf*p%c)%c;
p=p*cnst%c;
}
}
else
{
for(int i=0;i<b-1;i+=2)
{
r=(r+cf*p%c)%c;
p=p*cnst%c;
}
r=(r+p)%c;
}
if(c==2)
printf("%02d", r);
else if(c==3)
printf("%03d", r);
else if(c==4)
printf("%04d", r);
else if(c==5)
printf("%05d", r);
else if(c==6)
printf("%06d", r);
else if(c==7)
printf("%07d", r);
else if(c==8)
printf("%08d", r);
else if(c==9)
printf("%09d", r);
else
cout<<r;
return 0;
}