Mai intai trebuie sa te autentifici.
Cod sursa(job #988725)
| Utilizator | Data | 23 august 2013 18:41:39 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.6 kb |
//Dandu-se doua numere naturale N si P, se cere sa se calculeze restul impartirii lui N^P la 1999999973.
#include <stdio.h>
unsigned long int N, P;
long long int mod = 1999999973;
unsigned long int logPow(unsigned long int n, unsigned long int p){
long int z = 1;
n = n % mod;
while(p > 0){
if(p % 2 == 1){
z = (z * n) % mod;
}
n = (n * n) % mod;
p = p / 2;
}
return z;
}
void read(){
freopen("lgput.in", "r", stdin);
scanf("%lu", &N);
scanf("%lu", &P);
}
int main(){
freopen("lgput.out", "w", stdout);
read();
printf("%lu", logPow(N, P));
return 0;
}