Cod sursa(job #2232107)
Utilizator | Kritikos Catalina CatalinaK | Data | 17 august 2018 12:54:07 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.56 kb |
#include <fstream>
using namespace std;
long long nr=199999973;
long long functie1 (long long m, long long n)
{
long long rez=1;
while (n !=0 )
{
if (n%2 == 0)
{
m=(m*m)%nr;
n= n/2;
}
else
{
rez= (rez*m)%nr;
m=(m*m)%nr;
n= (n-1)/2;
}
}
return rez;
}
int main()
{
ifstream fin ("lgput.in");
ofstream fout ("lgput.out");
long long m, n;
fin>>m>>n;
fout<< functie1 (m,n);
return 0;
}