Cod sursa(job #2214876)

Utilizator lorena1999Marginean Lorena lorena1999 Data 20 iunie 2018 13:20:30
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<iostream>
#include<vector>
#define ll long long
#include <string.h>
#include <fstream>
#define MAX 2000000
#define ll long long

using namespace std;

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

ll int UltimaCifra(ll int a, ll int b)
{
    if(b==0)
        return 1;
    if(b==1)
        return (a%10);
    ll int d = b/2;
    ll int rez= UltimaCifra(a, d);
    if(b%2==1)
        return (((rez*rez)%1999999973)*(a%1999999973))%1999999973;
    else return (rez*rez)%1999999973;
}

ll int brut(ll int a, ll int b)
{
    ll int rez = 1;
    for(ll int i=1; i<=b; i++)
        rez=(rez*a)%10;
    return rez;
}

int main()
{
    ll int a, b;
    f>>a>>b;
    g<<UltimaCifra(a, b);
}