Cod sursa(job #801489)
| Utilizator | Data | 24 octombrie 2012 15:35:13 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.46 kb |
#include <iostream>
#include <stdio.h>
using namespace std;
FILE *f=fopen("lgput.in","r");
FILE *g=fopen("lgput.out","w");
unsigned long long cn,n,p,nr,i,m;
int main()
{
fscanf(f,"%d%d",&n,&p);
cn=n;
nr=1;
for(i=0;i<32;i++)
{
m=1<<i;
if((m&p)==m)
{
nr=(cn*nr)%189878559;
}
cn=(cn*cn)%189878559;
}
fprintf(g,"%d",nr);
fclose(g);
return 0;
}
