Cod sursa(job #1133672)
Utilizator | Data | 5 martie 2014 12:14:04 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.41 kb |
#include <iostream>
#include<stdio.h>
using namespace std;
FILE *f,*g;
const int M=1999999973;
int N,P;
int main()
{
f=fopen("lgput.in","r");
g=fopen("lgput.out","w");
fscanf(f,"%d%d",&N,&P);
int rez=1;
while(P>0)
{
if (P%2==1) rez=((long long)rez*N)%M;
N=((long long)N*N)%M;
P=P/2;
}
fprintf(g,"%d",rez);
return 0;
}