Cod sursa(job #1464054)

Utilizator linerunnerMihai Ion linerunner Data 22 iulie 2015 11:05:08
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator c Status done
Runda Arhiva educationala Marime 0.57 kb
#include <stdio.h>
#include <stdlib.h>
#define M 1999999973

long int fastexp(long int n, long int p)
{
    long int rez = 1;

    while ( p != 0 )
    {
        if ( p % 2 == 1 )
            rez = ( rez * n ) % M  ;
        n = ( n * n ) % M;
        p = p / 2;
    }

    return rez;
}

int main()
{
    FILE *f, *g;
    f = fopen("lgput.in", "r");
    g = fopen("lgput.out", "w");

    long int n, p;

    fscanf(f, "%ld", &n);
    fscanf(f, "%ld", &p);

    fprintf(g, "%ld", fastexp(n, p));

    fclose(f);
    fclose(g);

    return 0;
}