Cod sursa(job #1625619)

Utilizator andi12Draghici Andrei andi12 Data 2 martie 2016 19:53:30
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <cstdio>

using namespace std;
const int MOD=1999999973;
long long ct,ras;
void fc(long long a,long long n)
{
    if(n==0)
    {
        ras=1;
        return ;
    }
    else
    {
        if(n==1)
        {
            ras=a%MOD;
            return ;
        }
        if(n%2==0)
        {
            fc((a*a)%MOD,n/2);
        }
        if(n%2==1)
        {
            fc((a*ct)%MOD,n-1);
        }
    }
}
int main()
{
    FILE *in,*out;
    in=fopen("lgput.in","r");
    out=fopen("lgput.out","w");
    long long n,p;
    fscanf(in,"%lld%lld",&n,&p);
    ct=n;
    fc(n,p);
    fprintf(out,"%lld",ras);
    return 0;
}