Cod sursa(job #3232614)

Utilizator INDRIE_FILIPIndrie Filip-Iulian INDRIE_FILIP Data 31 mai 2024 14:54:47
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.57 kb
#include <stdio.h>
#include <stdlib.h>

#define fin "lgput.in"
#define fout "lgput.out"

#define mod 1999999973

long long log_exp(long long y,long long x,int n){
    if(n==0){
        return y;
    }
    if(n%2){
        return log_exp((y*x)%mod,(x*x)%mod,(n-1)/2);
    }
    else{
        return log_exp(y%mod,(x*x)%mod,n/2);
    }
}

int main()
{
    FILE *f,*g;
    f=fopen(fin,"r");
    g=fopen(fout,"w");
    long long n,p;
    fscanf(f,"%lld%lld",&n,&p);
    fprintf(g,"%lld\n",log_exp(1,n,p));
    fclose(f);
    fclose(g);
    return 0;
}