(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
",1,x-1);//按以上讲述方法,直接输出1,x-1 即可
}
return 0;
}
如果这篇文章给予了你帮助,那你就点个赞再走吧,Thanks♪(・ω・)ノ