Cod sursa(job #636351)

Utilizator LgregL Greg Lgreg Data 19 noiembrie 2011 19:13:17
Problema Ciuperci Scor 0
Compilator cpp Status done
Runda .com 2011 Marime 0.64 kb
#include<stdio.h>
int num[2101000];
int nrfin;
int q=0;
long long rec(long long x)
{
if(q==1)
printf("%lld\n",x);
if(x==1||x==0)
    return 1;
if(x<nrfin)
    return num[x];
    //long long w=rec(x/2-1);
    long long q=rec(x/2);
    if(x%2==0)
        return (q*rec(x/2-1)*2)%666013;
    else return (q*q)%666013;
}
long long N,x;
int main()
{

    num[0]=num[1]=1;
    for(int i=1;i<=2000000;++i)
        {
        num[i]=rec(i);
        nrfin=i;
    }
    q=1;
    scanf("%lld",&N);
    N=1;
        for(int i=1;i<=N;++i)
        {
            scanf("%lld",&x);
            printf("%lld\n",rec(x));
        }
}