GCD vs LCM

Posted on 2022-10-12 21:11  zeitspeed  阅读(40)  评论(0编辑  收藏  举报

You are given a positive integer nn. You have to find 44 positive integers a, b, c, da,b,c,d such that

a + b + c + d = na+b+c+d=n, and
\gcd(a, b) = \operatorname{lcm}(c, d)gcd(a,b)=lcm(c,d).
If there are several possible answers you can output any of them. It is possible to show that the answer always exists.

In this problem \gcd(a, b)gcd(a,b) denotes the greatest common divisor of aa and bb, and \operatorname{lcm}(c, d)lcm(c,d) denotes the least common multiple of cc and dd.

Input
The input consists of multiple test cases. The first line contains a single integer tt (1 \le t \le 10^41≤t≤10
4
) — the number of test cases. Description of the test cases follows.

Each test case contains a single line with integer nn (4 \le n \le 10^94≤n≤10
9
) — the sum of aa, bb, cc, and dd.

Output
For each test case output 44 positive integers aa, bb, cc, dd such that a + b + c + d = na+b+c+d=n and \gcd(a, b) = \operatorname{lcm}(c, d)gcd(a,b)=lcm(c,d).

Sample 1
Inputcopy Outputcopy
5
4
7
8
9
10
1 1 1 1
2 2 2 1
2 2 2 2
2 4 2 1
3 5 1 1
Note
In the first test case \gcd(1, 1) = \operatorname{lcm}(1, 1) = 1gcd(1,1)=lcm(1,1)=1, 1 + 1 + 1 + 1 = 41+1+1+1=4.

In the second test case \gcd(2, 2) = \operatorname{lcm}(2, 1) = 2gcd(2,2)=lcm(2,1)=2, 2 + 2 + 2 + 1 = 72+2+2+1=7.

In the third test case \gcd(2, 2) = \operatorname{lcm}(2, 2) = 2gcd(2,2)=lcm(2,2)=2, 2 + 2 + 2 + 2 = 82+2+2+2=8.

In the fourth test case \gcd(2, 4) = \operatorname{lcm}(2, 1) = 2gcd(2,4)=lcm(2,1)=2, 2 + 4 + 2 + 1 = 92+4+2+1=9.

In the fifth test case \gcd(3, 5) = \operatorname{lcm}(1, 1) = 1gcd(3,5)=lcm(1,1)=1, 3 + 5 + 1 + 1 = 103+5+1+1=10.

#include<stdio.h>
int main(void){
    int n;
    scanf("%d",&n);
    int m;
    int a[4]={1,1,1,1};
    for(int i=0;i<n;i++){
        scanf("%d",&m);
        a[0]+=(m-4);
        for(int l=0;l<4;l++){
            printf("%d ",a[l]);
        }
        printf("\n");
        a[0]=1;
    }
    return 0;
}