Cod sursa(job #845456)

Utilizator alex_unixPetenchea Alexandru alex_unix Data 30 decembrie 2012 21:44:54
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <cstdio>
 
inline unsigned int power (unsigned long long base, unsigned int exponent)
{
    static const unsigned int MOD(1999999973);
    unsigned long long result(1);
    while (exponent)
    {
    	if (exponent & 0x01)
    		result = (result * base) % MOD;
    	base = (base * base) % MOD;
    }
    return result;
}
 
int main (void)
{
    std::freopen("lgput.in","r",stdin);
    unsigned int n,p;
    std::scanf("%u%u",&n,&p);
    std::fclose(stdin);
    std::freopen("lgput.out","w",stdout);
    unsigned int result(power(n,p));
    std::printf("%u\n",result);
    std::fclose(stdout);
    return 0;
}