Pagini recente » Cod sursa (job #1251301) | Cod sursa (job #465760) | Cod sursa (job #691324) | Cod sursa (job #2473289) | Cod sursa (job #2111344)
#include <iostream>
#include<fstream>
using namespace std;
ifstream in("lgput.in");
ofstream out("lgput.out");
int n, nr_iter=0,p;
long long c=1999999973;
int fibo(int n)
{
nr_iter++;
if (n<=2) return 1;
else return fibo(n-1)+fibo(n-2);
}
long long ridnorm(long long n, long long p)
{
int k=1;
for(int i=1; i<=p; i++)
{
nr_iter++;
k*=n;
}
return k;
}
long long t(long long a,long long b) //a la b la suta c
{
nr_iter++;
if(b==0)
{
return 1;
}
else if(b==1)
{
return a%c;
}
if(b%2==0)
{
long long aux=t(a,b/2);
return (aux*aux)%c;
}
if(b%2==1)
{
return (t(a,b-1)*a)%c;
}
}
long long timplog(long long a, long long b)
{
nr_iter++;
if(b<0) return timplog(1/a,-b);
else if(b==0) return 1;
else if(b==1) return a;
else if(b%2==0) return timplog(a*a,b/2);
else if(b%2==1) return a*timplog(a*a,(b-1)/2);
}
int main()
{
in>>n>>p;
//cout<<fibo(n);
//cout<<ridnorm(n,p)<<"\n";
//cout<<t(n,p)<<"\n";
out<<timplog(n,p)<<"\n";
//cout<<nr_iter<<"\n";
return 0;
}