Cod sursa(job #1636278)
| Utilizator | Data | 7 martie 2016 01:16:30 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include <fstream>
using namespace std;
const long long MOD = 1999999973;
long long solve(long long,long long);
int main()
{
long long sol,power;
fstream f("lgput.in",ios::in);
ofstream g("lgput.out");
f>>sol>>power;
g<<solve(sol,power);
return 0;
}
long long solve(long long number, long long power)
{
if(power==0)return 1;
if(power==1)return number%MOD;
if(power%2==0)return solve(((number%MOD)*(number%MOD))%MOD,power/2);
else return (number*solve(((number%MOD)*(number%MOD))%MOD,power/2))%MOD;
}
