Cod sursa(job #903638)
| Utilizator | Data | 1 martie 2013 23:53:21 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.45 kb |
#include <cstdio>
FILE *f=fopen("lgput.in","r");
FILE *g=fopen("lgput.out","w");
#define mod 1999999973
long long r=1;
long long putere(long long a,long long b)
{
long long x=a;
if(b==0)return 1;
while(b>1)
if(b%2==0)
{a=(a*a)%mod;b/=2;}
else
{r*=a;b--;r%=mod;}
return a;
}
int main()
{
long long a,b;
fscanf(f,"%lld%lld",&a,&b);
fprintf(g,"%lld",(putere(a,b)*r)%mod);
return 0;
}
