Pagini recente » Cod sursa (job #210168) | Cod sursa (job #473379) | Monitorul de evaluare | Istoria paginii utilizator/rusueduard | Cod sursa (job #635714)
Cod sursa(job #635714)
#include <stdio.h>
#include <map>
#define ll long long
#define MOD 666013
#define NMAX 10005
using namespace std;
int t;
ll n;
map <ll,int> H,H2;
inline int calcul(ll n)
{
if (n==0)
return 1;
if (n==1)
return 1;
int act=H[n];
if (act)
return act;
if (n % 2==1)
act=((ll)calcul(n/2)*calcul(n/2))%MOD;
else
act=((ll)calcul(n/2)*calcul(n/2-1)*2)%MOD;
H[n]=act;
return act;
}
int main()
{
freopen("ciuperci.in","r",stdin);
freopen("ciuperci.out","w",stdout);
scanf("%d",&t);
while (t--)
{
scanf("%lld",&n);
printf("%d\n",calcul(n));
H=H2;
}
return 0;
}