Cod sursa(job #2328328)

Utilizator rares1012Rares Cautis rares1012 Data 25 ianuarie 2019 17:14:51
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include <bits/stdc++.h>
#define nr 1999999973

long long int q;

long long int put(long long int n,long long int k)
{
    if(k==0)
        return n;
    int r=q;
    while(k%2==0){
        r=(long long)(r*r)%nr;
        k/=2;
    }
    return (long long)put((long long)(n*r)%nr,k-1)%nr;
}

int main()
{
    long long int n,k;
    FILE*fi,*fo;
    fi=fopen("lgput.in","r");
    fo=fopen("lgput.out","w");
    fscanf(fi,"%lld%lld",&n,&k);
    q=n;
    fprintf(fo,"%lld",put(1,k));
    fclose(fi);
    fclose(fo);
    return 0;
}