Pagini recente » Cod sursa (job #1383283) | Cod sursa (job #1707435) | Cod sursa (job #627487) | Cod sursa (job #1007563) | Cod sursa (job #638254)
Cod sursa(job #638254)
#include <cstdio>
#include <map>
using namespace std;
#define mod 666013
#define ll long long
int q;
ll n;
map <ll, int> m;
inline ll solve (ll n)
{
if (n==1) return 1;
if (n==2) return 2;
if (m[n]) return m[n];
ll x, y=n>>1;
if (n&1)
{
x=solve(y);
x=(x*x)%mod;
m[n]=x;
return x;
} else
{
x=solve(y);
y=solve(y-1);
x=(2*x*y)%mod;
m[n]=x;
return x;
}
}
int main()
{
freopen("ciuperci.in","r",stdin);
freopen("ciuperci.out","w",stdout);
scanf("%d\n", &q);
char s[20];
int i;
while (q--)
{
n=0;
fgets(s, 20, stdin);
for (i=0; s[i]>='0' && s[i]<='9'; i++) n=n*10+s[i]-'0';
printf("%lld\n", solve(n));
m.clear();
}
}