Cod sursa(job #524016)

Utilizator maritimCristian Lambru maritim Data 19 ianuarie 2011 22:47:24
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<iostream>
#include<math.h>
using namespace std;

long long n;
long long p;
long long nr = 1;
long long p2;

void inmultire(void)
{
     p2 = (int)sqrt(p);
     nr = n;
     while(p!=1)
     {
     if(!(p%2))
     {
       nr = (nr*nr)%1999999973;
       p /= 2;
     }
     else
     {
       nr = (nr*n)%1999999973;
       p --;
     }
     }
}

void citire(void)
{
     FILE *f = fopen("lgput.in","r");
     
     fscanf(f,"%lld %lld",&n,&p);
     
     fclose(f);
}

int main()
{
    FILE *f = fopen("lgput.out","w");
    
    citire();
    inmultire();
    fprintf(f,"%lld",nr%1999999973);
    
    fclose(f);
}