分析
首先我们要保证 $4$ 个数最大公约数是 $k$,那么我们可以最开始时枚举 $4$ 个互素的数,最后同时 $\times k$ 即可。
我们又要使最大数最小,那么我们可以枚举最小的互素的数来满足要求。
最小的互素四元组是:$1,2,3,5$
那么第一个就可以输出:$1\times k,2\times k,3\times k,5\times k$(若比 $k$ 小,那么不可能因子中有 $k$)。
但是题目让我们找的并不止有一组。那么下一组怎么找呢?
首先,我们要尽量往小找,不能有重复的数,所以接下来我们在 $4,6,7,8,…$ 中选数。
我们在来看一下第一个四元组的形式:$x,x+1,x+2,x+4$,由于连续的 $3$ 个奇数一定互质,奇数和偶数一定互质,所以找两连续的三个数再往后凑一个奇数即可满足要求。
下一个合法四元组:$7,8,9,11$
我们可以看成 $6$ 个数分成一组,然后枚举大组输出即可。
证明此方法最大值最小
由于找到的四元组的值不能重复,我们选的数的密度已经很大,但还是说明不了我们找的最大值是正确的。
现在假设我们目标要找 $4$ 组符合要求的四元组(为了方便描述我们取 $k=1$)。
按照我们的规律找到的最大值是 $23$,那么我们假设存在一种方法,结果的最大值比它小。
设四组的四元组值分别为:
$a_1,a_2,a_3,a_4$
$b_1,b_2,b_3,b_4$
$c_1,c_2,c_3,c_4$
$d_1,d_2,d_3,d_4$
这些的取值范围是 $[1,22]$。
我们要保证每个四元组中的数两两互质,所以每个四元组不能同时存在某一个数的倍数。
首先我们可以整理出我们有 $8$ 个质数($2,3,5,7,11,13,17,19$)在加上 $1$,它们一定两两互质。我们现在可以保证 $9$ 个数的填充,还剩下 $7$ 个数,只要能填进去,那么就可以证明 $23$ 不是最小的最大值。
如果我们先让 $9$ 个数成两个四元组 $2,3,5,7$ 和 $11,13,17,19$ 因为 $1$ 和任何数不冲突,所以放在心的一组中,成功的可能性更大一些。
现在还剩下:$4,6,8,9,10,12,14,15,16,18,20,21,22$
在我们选出 $1,4,9$ 后发现,选不下去了。
我们换一种放质数的方法试试:
我们知道每个四元组要求两两互质,所以只能使用 $4$ 个 $2$ 的倍数的数。
我们直接选最优情况:$2,4,8,16$ 因为它们只占了一个质数。
然后选 $3$ 的倍数的数:$3,9,15,21$(注意不能再选 $2$ 的倍数的数)
现在我们已经解决了 $8$ 个数的选择,选质数一定是最优的,还剩下:$5,7,11,13,17,19$ 加上 $1$ 一共 $7$ 个数。我们将选出的数搭配一下:
$16,11,13,21$
$8,15,17,19$
$4,5,7,9$
$1,2,3,?$
我们按照最优的方法填好后,发现只剩一个位置了。我们还剩下的数:$6,10,12,14,18,20,22$。
我们每组中都用过了 $2$ 的倍数的数,选的数是通过最优的情况选出的,但是不可能再选别的数了。
为什么会这样?
其实很简单:$[1,22]$ 中有 $11$ 个数是 $2$ 的倍数,我们只能选 $4$ 个,相当于抛弃了 $7$ 个数。我们要找到 $16$ 个数,一共 $22$ 个数,扔了 $7$ 个,就剩 $15$ 个了,所以不可能选出 $16$ 个的。
同时,我们还说明了如果要找最小的最大值那么 $2$ 的倍数的数一定会出现在每一组四元组中。
我们知道了一定会选一个偶数,那么选的数越小最好。两个自然数互质,所以会选这个数的相邻的一个数,这个数是奇数。
也就是说,如果我们选出一个偶数是 $x$,那么我们一定会选 $x+1$,连续的两个奇数一定互质(下面会有连续的 $3$ 的奇数一定互质的证明),所以 $x-1$ 也会选。
但是,$x+2$ 一定不会选,因为 $\gcd(x,x+2)=2$,那么如果 $x+3$ 可以选,$x+3$ 一定是这个四元组的最大值,同时也是最小的最大值。
奇数和偶数一定互质,那么只要证明 $x-1,x+1,x+3$ 互质,就能证明方法的正确性,并且找到了最小的最大值。
连续的 $3$ 个奇数互质
设三个奇数为:$2x+1,2x+3,2x+5$
假设前两个奇数不互质,有公因子 $k(k\not= 1)$,那么:$\frac{2x+3}{k}=\frac{2x+1}{k}+m$($m$ 是整数)
但是,奇数的因数中不会出现 $2$,矛盾。所以 $2x+1,2x+3$ 互质,$2x+3,2x+5$ 同理。
假设 $x2+1,2x+5$,不互质,有公因子 $k(k\not= 1)$,那么:$\frac{2x+5}{k}=\frac{2x+1}{k}+m$ ($m$ 是整数)
但是,奇数的因数中不会出现 $4,2$,矛盾。所以 $2x+1,2x+5$ 互质。
注意:连续的 $4$ 个奇数就不同了:$3,5,7,9$,$3,9$ 不互素
$\frac{2x+7}{k}=\frac{2x+1}{k}+m$ ($m$ 是整数)
注意:$k=3$ 时,是可能成立的,它可能成为奇数的因数。
有解,所以四个连续的奇数不是一定是互质的。
代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
int r_r(){//快读
int k=0,f=1;
char c=getchar();
while(!isdigit(c)){
if(c=='-')f=-1;
c=getchar();
}
while(isdigit(c)){
k=(k<<1)+(k<<3)+(c^48);
c=getchar();
}
return k*f;
}
int n=r_r(),k=r_r(),x;
int main(){
printf("%d\n",(n*6-1)*k);//计算
for(int i=1;i<=n;i++){
x=i*6-5;
printf("%d %d %d %d\n",x*k,(x+1)*k,(x+2)*k,(x+4)*k);//输出
}
return 0;
}