Cod sursa(job #2256086)

Utilizator gruhtenZinnenberg Gruhten gruhten Data 7 octombrie 2018 22:10:01
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <cstdio>
const int MOD = 1999999973;

int main()
{

	freopen("lgput.in","r",stdin);
	freopen("lgput.out","w",stdout);

    unsigned int b,p;
    long long rez=1, nr=1;
 	scanf("%d %d", &b, &p);
 	nr=b;
 	while(p)
 	{
 	    if(p&1)
            rez=(rez*nr)%MOD;
        nr=(nr*nr)%MOD;
        p=p/2;
 	}

//int i;
// 	for(i=0;p>>i;i++)
//    {
//        if((p>>i)&1)
//            rez=(rez*nr)%MOD;
//        nr=(nr*nr)%MOD;
//    }

// 	for(i=0;p>>i;i++)
//    {
//        if((1<<i)&p)
//            rez=(rez*nr)%MOD;
//        nr=(nr*nr)%MOD;
//    }
 	printf("%lld\n", rez);    //am afisat solutia

}