Pagini recente » Cod sursa (job #655966) | Cod sursa (job #39744) | Cod sursa (job #132569) | Cod sursa (job #2397543) | Cod sursa (job #1005589)
#include<fstream>
using namespace std;
int m=1999999973;
//int m=5;
/* int power(int N, int P){
if(P==0) return 1;
if(P==1) return N;
long long aux=power(N,P/2);
aux=(aux*aux)%M;
if(P%2==1) aux=(aux*N)%M;
return int(aux);
}
int power(int x,int n){
if(n==0) return 1;
if(n==1) return x;
if(n%2==0) return (power((x%M)*(x%M)%M,n/2))%M;
if(n%2==1) return (x%M)*(power(x,n-1))%M;
}
int power(int x,int n){
if(n==0) return 1;
if(n==1) return x%M;
long long aux=1;
for(int i=1;i<=n;i++) aux=((aux%M)*(x%M))%M;
return aux;
}
*/
int power(int x, int n){
int N=n;
unsigned long long aux=1,value=1;
while(n>0){
if(n==N){
value=x%m;
n--;
}
else if(n==1){
aux=x%m;
n--;
}
else if(n%2==0){
value=((value%m)*(value%m))%m;
n=n/2;
}
else if(n%2==1){
aux=((aux%m)*(x%m))%m;
n--;
}
}
return ((value%m)*(aux%m))%m;
}
int main(){
ifstream inFile("lgput.in");
int baza,exponentul;
inFile>>baza>>exponentul;
ofstream outFile;
outFile.open("lgput.out");
outFile<<power(baza,exponentul);
}