Cod sursa(job #925911)
| Utilizator | Data | 24 martie 2013 20:20:09 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include<fstream>
#define mod 1999999973
using namespace std;
long long n,k,p=1LL;
long long Putere_log()
{
while(k)
{
if(k&1)//k este impar
{
p = (p % mod * n%mod)%mod;
k--;
}
k >>= 1;//k/=2
n = (n % mod * n %mod ) %mod;
}
return p;
}
int main()
{
ifstream fin("lgput.in");
fin>>n>>k;
fin.close();
ofstream fout("lgput.out");
fout<<Putere_log()<<"\n";
fout.close();
return 0;
}
