Cod sursa(job #1453724)

Utilizator sabauandrei98Sabau Andrei sabauandrei98 Data 24 iunie 2015 14:02:32
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <limits.h>
#include <cmath>
#include <string>
#include <stdio.h>
#include <algorithm>
#include <stdlib.h>
#include <vector>
#include <stack>
#include <map>
#include <fstream>
#include <list>
#include <queue>
#include <iomanip>
#include <deque>

using namespace std;

ifstream f("lgput.in");
ofstream g("lgput.out");

#define cin f
#define cout g
#define mod 1999999973

int r_log(long long n, long long p)
{
    if (p == 0) return 1;
    if (p == 1) return n;
    if (p%2 == 1) return (n * (r_log( ((n * n) % mod) ,p/2))) % mod;
    if (p%2 == 0) return (r_log( ((n * n) % mod),p/2)) % mod;
}

int main()
{

    long long n,m;
    cin>>n>>m;
    cout<<r_log(n,m);

  return 0;
}