#include
#include
#define LL long long
typedef struct
{
LL num;
int len;
} digit;
LL ans,n;
LL p[18];
int len;
bool f;
digit q[100005];
int bfs(int cur)
{
if(f)return 0;
int front=0,rear=0;
for(int i=0; i<=9; i++)
{
LL t=i*p[0];
if((t*t)%p[1]==n%p[1])
{
q[rear].num=t;
q[rear].len=1;
rear++;
}
}
//printf("%d\n",rear);
while(frontlen)return 0;
//if(u==0)l=1;
//printf("%I64d\n",l);
for(int i=0; i<=9; i++)
{
LL t=i*p[l]+u;
if((t*t)%p[l+1]==n%p[l+1])
{
q[rear].num=t;
q[rear].len=l+1;
rear++;
}
}
front++;
}
return 0;
}
int main()
{
p[0]=1;
for(int i=1; i<18; i++)
{
p[i]=p[i-1]*10;
}
int T;
scanf("%d",&T);
while(T--)
{
scanf("%I64d",&n);
len=log10(n)+1;
int k=n%10;
f=false;
ans=1LL<<62;
if(k==0||k==1||k==4||k==5||k==6||k==9)
{
bfs(0);
}
if(!f)
printf("None\n");
else
printf("%I64d\n",ans);
}
return 0;
}
#include
#include
#define LL long long
typedef struct
{
LL num;
int len;
} digit;
LL ans,n;
LL p[18];
int len;
bool f;
digit q[100005];
int bfs(int cur)
{
if(f)return 0;
int front=0,rear=0;
for(int i=0; i<=9; i++)
{
LL t=i*p[0];
if((t*t)%p[1]==n%p[1])
{
q[rear].num=t;
q[rear].len=1;
rear++;
}
}
//printf("%d\n",rear);
while(frontlen)return 0;
//if(u==0)l=1;
//printf("%I64d\n",l);
for(int i=0; i<=9; i++)
{
LL t=i*p[l]+u;
if((t*t)%p[l+1]==n%p[l+1])
{
q[rear].num=t;
q[rear].len=l+1;
rear++;
}
}
front++;
}
return 0;
}
int main()
{
p[0]=1;
for(int i=1; i<18; i++)
{
p[i]=p[i-1]*10;
}
int T;
scanf("%d",&T);
while(T--)
{
scanf("%I64d",&n);
len=log10(n)+1;
int k=n%10;
f=false;
ans=1LL<<62;
if(k==0||k==1||k==4||k==5||k==6||k==9)
{
bfs(0);
}
if(!f)
printf("None\n");
else
printf("%I64d\n",ans);
}
return 0;
}