\(Solution:\)
这道题的问题是输出一组 \((a,b)\) 使得 \(\gcd(a,b)+\operatorname{lcm}(a,b)=x\),我们又知道 \(\gcd(a,1)=1\),\(\operatorname{lcm}(a,1)=a\) 又知道如果有多种可能就输出其中一种即可,所以我们就直接输出 $1,x-1$ 就行了。
\(code:\)
#include<cstdio>//这里为了节省空间,所以不打万能头
using namespace std;//标准数据库
inline int read()//快速读入
{
int x=0;bool f=1;char c=getchar();
while(c<'0' || c>'9'){if(c=='-') f=0;c=getchar();}
while(c>='0' && c<='9') x=(x<<3)+(x<<1)+(c^48),c=getchar();
return f?x:-x;
}
int T,n;
int main()
{
T=read();//读入数据组数
while(T--)
{
x=read();//读入 x
printf("%d %d\n",1,x-1);//按以上讲述方法,直接输出1,x-1 即可
}
return 0;
}
如果这篇文章给予了你帮助,那你就点个赞再走吧,Thanks♪(・ω・)ノ