Cod sursa(job #2418690)
| Utilizator | Data | 5 mai 2019 20:02:00 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 20 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.41 kb |
#include <iostream>
#define modu 1999999973
FILE * fin= fopen("lgput.in","r");
FILE * fout= fopen("lgput.out","w");
long long n,p;
int main()
{
fscanf(fin,"%lld %lld",&n,&p);
long long pow2=2;
long long coun2=1;
long long pow=1;
while(p!=0)
{
if( (p&coun2)!=0 )
{
pow=(pow*pow2)%modu;
p-=coun2;
}
coun2= coun2*2;
pow2=(pow2*pow2)%modu;
}
fprintf(fout,"%lld",pow);
}
