Cod sursa(job #1796184)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 3 noiembrie 2016 10:36:12
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <cstdio>
#define MOD 1999999973

using namespace std;
int main()
{
    FILE *fin=fopen ("lgput.in","r");
    FILE *fout=fopen ("lgput.out","w");
    int n,m,aux=1;
    fscanf (fin,"%d%d",&n,&m);
    while (m>1){
        if (m%2==0){
            // n^m== (n^2)^(m/2)
            n=((long long)n*n)%MOD;
            m/=2;
        }
        else {
            aux=((long long)aux*n)%MOD;
            n=((long long)n*n)%MOD;
            m/=2;
        }
    }
    fprintf (fout,"%d",((long long)n*aux)%MOD);
    return 0;
}