Cod sursa(job #2604710)

Utilizator lepoartcevPaltineanu Rares-Mihai lepoartcev Data 23 aprilie 2020 12:27:15
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <stdio.h>
#include <stdlib.h>
#define mod 1999999973

long exponential(long n, long p){

    printf("%ld\n", n);
    if(p == 1)
        return n % mod;

    if(p == 0)
        return 1;

    if(p % 2 == 1)
        return (n % mod * (exponential((n % mod * n % mod) % mod, (p - 1)/ 2) % mod)) % mod;
    else
        return exponential((n % mod * n % mod) % mod, p / 2) % mod;

}

int main()
{

    FILE* in = fopen("lgput.in", "r");
    FILE* out = fopen("lgput.out", "w");

    long n, p;

    fscanf(in, "%ld %ld", &n, &p);
    fprintf(out, "%ld", exponential(n, p));
    printf("%\n\n%ld", 65536 * 65536);
    return 0;
}