Cod sursa(job #1185325)

Utilizator Vally77FMI Calinescu Valentin Gelu Vally77 Data 15 mai 2014 15:39:42
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#define MOD 1999999973
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
ifstream ka("lgput.in");
ofstream ki("lgput.out");
long int n , p;
long int inmultire(long int t)
{
    long int nr = 0;
    if(t > 1000)
        for(int i = 1; i <= t/1000; i++)
        {
            cout << "da";
            nr += (t* t/1000) % MOD;
            nr = nr % MOD;
        }
    else
        nr = t * t;
    return nr;
}
long int putere(long int n, long int p)
{
    if(p == 0)
        return 1;
    long int k = putere(n, p/2) % MOD;
    if(p%2 == 0)
        return inmultire(k);
    else
        return (n*inmultire(k))%MOD;
}
int main()
{
    cin >> n >> p;
    ki << putere(n, p);
}