Pagini recente » Cod sursa (job #1476995) | Cod sursa (job #1122835) | Cod sursa (job #2971095) | Cod sursa (job #915416) | Cod sursa (job #2423309)
#include <stdio.h>
//returneaza rezultatul ridicarii lui n la puterea p
long long int power2(long long int n, long long int p)
{
if (p == 1)
return n % 1999999973;
if (p == 0)
return 1;
if (p % 2 == 0)
return (power2(n, p / 2) * power2(n, p / 2)) % 1999999973;
else
return ((power2(n, p / 2) * power2(n, p / 2) ) % 1999999973 * n) % 1999999973;
}
long long int power(long long int n, long long int p)
{
long long int rez = 1;
while(p){
if (p % 2 == 0)
{
n = (n * n) % 1999999973;
p /= 2;
}
if (p % 2 == 1)
{
rez = (rez * n) % 1999999973;
p--;
}
}
return rez ;
}
int main()
{
FILE *fL = fopen("Lgput.in", "r");
long long int n, p;
fscanf(fL,"%lli", &n);
fscanf(fL, "%lli", &p);
fclose(fL);
FILE *fL2 = fopen("Lgput.out", "w");
fprintf(fL2, "%lli\n", power(n, p));
fclose(fL2);
//system("pause");
return 0;
}