Cod sursa(job #801489)

Utilizator lehman97Dimulescu David lehman97 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;
}