問題概略
が整数になるような正の整数の組 を「よい組」とよぶことにする。
1, 2, , 2021 からどの 2 数もよい組を作らないように数を選んでいくとき,最大で何個の数を選べるだろうか?
https://artofproblemsolving.com/community/c6h2476057p20756209
解説の pdf も作りました。きれいなレイアウトで読みたい方はこちらをどうぞ。
最大クリーク問題に帰着させる
この分数が整数になるのは分子が分母で割り切れるとき,つまり「分母と分子の最大公約数が分母のとき」です。
, の最大公約数を であらわして計算します。
\begin{align*}
(17m+43n,\, m-n) &=\left(17m+43n-17(m-n),\, m-n\right)\\
&=(60n,\, m-n)\mbox{ ……(1)}\\
&=\left(60n+60(m-n),\, m-n\right)\\
&=(60m,\, m-n)\mbox{ ……(2)}
\end{align*}
(1)より がよい組になる条件は が で割りきれることです。
(1)(2)より がよい組なら もよい組なので,以下 とします。
「よい組」をグラフの言葉で言い換えましょう。 がよい組でないとき点 と点 の間に辺をはります。
どの 2 数もよい組を作らないように選んだ数の集合はクリーク(フルメッシュな部分グラフ)を構成します。最も大きいクリークの頂点数が答えです。mathematica で計算しました。
In[]:= AbsoluteTiming[ d = 2021; f[{m_, n_}] := If[! Divisible[60 n, n - m], m <-> n, Nothing]; eLst = f /@ Flatten[Table[{i, j}, {i, 1, d - 7}, {j, i + 7, d}], 1]; ans = Length /@ FindClique@Graph@eLst] Out[]= {48.8364, {289}}
4 行目の eLst は辺の集合です。
が 1, 2, 3, 4, 5, 6 のとき から はよい組になるので,
差が 7 以上ある の集合から が を割りきらないものを抽出して辺をはっています。
5 行目は辺の集合をグラフにして最大クリークの 1 つを求め,その頂点数を表示させています。
答えは 289 個でした。ちなみにここで求めた最大クリークの中身は初項 1,公差 7 の等差数列でした。
証明する
「プログラムを組んで実際に求めました」では解答にならないので,ちゃんと証明します。
どの 2 数もよい組を作らないように選んだ数を小さい順に , , , とおいて,
その階差の最小値を とおきます。
これは上の説明で言えば の最小値のことなので です。
と から が必要です。
について解くと
選べる個数は 289 個以下です。
次は実際に 289 個選べることを示します。
初項は 1 以上で階差は 7 以上であることを考えると,最も簡単な例は
でしょう。ここから と を選んだとします。
分母の 7 が約分で消えることはないので,これは整数ではありません。
どの もよい組にならないことが言えたので,これで証明完了です。答えは 289 個。