题意:给定一个数,求两个数使得他们的最小公倍数和最大公约数之和等于这个数
思路:两个相同的数的最大公约数和最小公倍数是它本身,一个数与1的最小公倍数是那个数,最大公约数是1。因此,当给定的数为偶数时,输出两次给出偶数的一半即可;若输入为奇数,输出1和给定数-1即可
以下是AC代码:
#include <iostream>
using namespace std;
int main()
{
int t;
scanf("%d", &t);
while(t--){
int e;
scanf("%d", &e);
if(e % 2 == 0)
printf("%d %d\n", e / 2, e / 2);
else
printf("1 %d\n", e - 1);
}
return 0;
}
题目链接:https://codeforces.com/problemset/problem/1325/A