Cod sursa(job #1625766)
Utilizator | Draghici Andrei andi12 | Data | 2 martie 2016 20:31:08 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.59 kb |
#include <cstdio>
using namespace std;
const int MOD=1999999973;
long long ct,ras;
long long fc(long long a,long long n)
{
int p;
if(n==0)
{
return 1;
}
else
{
if(n%2==0)
{
return fc((a*a)%MOD,n/2);
}
if(n%2==1)
{
return (a*fc((a*a)%MOD,n/2))%MOD;
}
}
}
int main()
{
FILE *in,*out;
in=fopen("lgput.in","r");
out=fopen("lgput.out","w");
long long n,p;
fscanf(in,"%lld%lld",&n,&p);
ct=n;
fprintf(out,"%lld",fc(n,p));
return 0;
}