题目大意
给我们n和k,k为3,我们需要将n分成3个数,且此3个数的最小公倍数不能超过n/2
题解
如果n为奇数,那么我们可以将其拆分为1,n/2,n/2
如果n为偶数,如果n/2为奇数,那我们可以先提出来一个2,让剩下的数可以对半分而且是2的倍数,分成了2,(n-2)/2,(n-2)/2,如果n/2为偶数,那么我们可以先提出来一半,剩下的对半分还是2的倍数,分成了n/2,n/4,n/4
#include<cstdio>
int main(){
long long T,n,k;
scanf("%lld",&T);
while(T--){
scanf("%lld%lld",&n,&k);
if(n%2){
printf("1 %lld %lld\n",n/2,n/2);
n--;
}else{
if(n/2%2){
n-=2;
printf("2 %lld %lld\n",n/2,n/2);
}else{
printf("%lld %lld %lld\n",n/2,n/4,n/4);
}
}
}
}