Cod sursa(job #1479445)

Utilizator pitbull007Hurmuzache Ciprian pitbull007 Data 31 august 2015 13:43:58
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.52 kb
#include <stdio.h>
#include <stdlib.h>
const int N = 1999999973;

long long int power(int n, int p) {
    int i;
    long long prod = 1,x;
    x=n;
    for(i=0;(1<<i) <= p; ++i) {
        if(( (1<<i) & p) > 0) {
            prod=(prod*x)%N;
        }
            x=(x*x)%N;
    }

    return prod;
}


int main(void) {
    FILE *fin,*fout;
    int i,n,p;
    long long prod = 1, x;

    fin=fopen("lgput.in","r");
    fout=fopen("lgput.out","w");

    fscanf(fin,"%d %d",&n,&p);

    fprintf(fout,"%lld",power(n,p));


    return 0;
}