小Q的数学老师给了小Q一个整数N,问小Q能否将W分解为两个整数X和Y相乘,并且满足X为奇数,Y为偶数,即能否找到奇数X和偶数Y满足X * Y = N,小Q被这个问题难住了,希望能你来帮助他计算。
输入描述:
输入的第一行包含一个正整数t( 1<= t <= 1000 ),表示测试样例数。接下来的t行,每行一个正整数N (2 <= N < 2^63),表示给出的N。保证不是2的幂次。
输出描述:
如果能找到这样的X,Y,则依次输出X,Y,如果有多解输出Y最小的那组解,以空格分割,否则输出"No"。
示例1
输入
2
10
5
输出
5 2
No
知识点:基本逻辑判断
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
int main()
{
int t;
LL n,x,y;
scanf("%d",&t);
while(t--)
{
scanf("%lld",&n);
if(n&1)
printf("No\n");
else
{
for(y=2; y<=n; y+=2)
{
if(n%y==0&&((n/y)&1))
{
x=n/y;
break;
}
}
printf("%lld %lld\n",x,y);
}
}
return 0;
}