题面:
题意:
对于给定的 N,构造一组(A,B,C),使得 A+B+C=N && gcd(A,B)=C。
题解:
优先考虑 C=1 的情况,这毕竟也是最简单的情况。同时,容易知 29 是10^9 以内的最大的质因数,所以我们只需暴力枚举 A 即可。
代码:
#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3,"Ofast","inline")
#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
#define eps 1e-10
#define lowbit(x) x&-x
#define int long long
int T,n;
signed main()
{
std::ios::sync_with_stdio(false);
std::cin.tie(0);
cin>>T;
while(T--)
{
cin>>n;
//可以打表知10^9以内最大的质因数为29
for(int i=2;i<=29;i++)
{
//暴力枚举
if(__gcd(i,n-1-i)==1)
{
cout<<i<<" "<<n-1-i<<" "<<1<<endl;
break;
}
}
}
return 0;
}