Cod sursa(job #2120458)

Utilizator Arsene_DenisaArsene Denisa Arsene_Denisa Data 2 februarie 2018 14:50:03
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <iostream>
#include<stdio.h>
using namespace std;

long long ridicare( long long n, long long p){
     long long rez=1;
     while(p!=0) {
        if(p%2==0) {
                    n=n*n;
        p=p/2;
        }
        else {
                rez=(rez*n)%1999999973;
        p--;
        }
     }
return rez;
}

int main() {
    FILE *fin, *fout;
    int n, p;

    fin=fopen("lgput.in", "r");
    fout=fopen("lgput.out", "w");
    fscanf( fin, "%d %d", &n, &p);
    fprintf( fout, "%d", ridicare(n, p));
    fclose( fin );
    fclose( fout );
    return 0;
}