Cod sursa(job #265930)

Utilizator xtremespeedzeal xtreme Data 24 februarie 2009 19:12:01
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<iostream.h>
#include<stdio.h>
#define C 1999999973


long long int ridicare(__int64 baza,__int64 exponent)
    {if(exponent%2!=0)  return (baza%C)*ridicare(baza-1,exponent);
    else       {if(!exponent)      
                            return 1;
                else 
                             return ridicare(baza,exponent/2)*ridicare(baza,exponent/2);}
    }
int main()
    {
    long long int baza,exponent;
    freopen("lgput.in","r",stdin);freopen("lgput.out","w",stdout);
    scanf("%lld %lld",&baza,&exponent);
    printf("%lld",ridicare(baza,exponent));
    fclose(stdin);fclose(stdout);
    return 0;
    }