题意:
给定一个n,让你构造a,b,c,满足 a+b+c=n,且gcd(a,b)=c
思路:
设
c=c
b=k1*c
a=k2*c
那么有(1+k1+k2)*c=n
即c一定是n的约数,一定是多解
考虑到是构造题,我们希望把条件特殊化
令c=1,那么只需找到互质的数对(i,n-1-i)就是答案
Code:
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n;
void solve(){
cin>>n;
for(int i=2;i<n;i++){
if(__gcd(i,n-i-1)==1){
cout<<i<<" "<<n-i-1<<" "<<1<<'\n';
return;
}
}
}
signed main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int T=1;
cin>>T;
while(T--)solve();
return 0;
}