Cod sursa(job #1122551)

Utilizator bluespideyMarin Diana bluespidey Data 25 februarie 2014 18:46:26
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <fstream>
#include <cmath>
#include <algorithm>
#define nr 1999999973

using namespace std;
int n,d,k,p,i,putere;

ifstream fin("lgput.in");
ofstream fout("lgput.out");

int main()
{
    fin >> n >> p;
    for(i = 1; i <= p;i*=2,++putere)
    k = i;
    d = n;

    for(i = 1; i < putere; ++i)
        {
            n *= n;
            n %= nr;
        }

    if(p == k)
        fout << n;
    else {for(i = 1;i <= p - k; ++i)
            {
                n *= d;
                n %= nr;
            }
        fout << n;
        }






    return 0;
}