解法
\( 5\)個選ぶとか,\(55,555\) 以下とかは,あまり意味の無さそうな条件で, 分かりづらいだけなので,一度無視する. 簡単な問題として, \(K\) 個以下選ぶ,\(K = 2,3\) を考える.
\(K = 2\) のとき, \(a_{i}\) を全て \(1\) mod \(2\) となる様にとればよい.
\(K = 3\) のとき, \(a_{i}\) を全て \(1\) mod \(3\) または \(a_{i}\) を全て \(2\) mod \(3\) となる様にとればよい.
\(K = 5\) でも同様. あとは,この取り方で残りの条件を満たすかである. \(M\) 以下の素数の個数が,およそ \(M / log (M)\) であることから, \(a_{i}\) を全て \(r\) mod \(K\) となる \(0 \neq r \in K\) は存在しそうである. 実際,エラトステネスの篩で作ってみると,条件を満たす.
使っている記号,マクロ等 "https://ecsmtlir.hatenablog.com/entry/2022/12/23/131925"
int main() {
ll n;
cin >> n;
const ll M = 55555;
for(ll p = 2; p <= M; p++) if(is_p[p]){
ps[p%5].push_back(p);
for(ll q = 2*p; q <= M; q += p) {
is_p[q] = false;
}
}
srep(i,1,5){
if(ps[i].size() >= 55){
rep(j,n){
cout << ps[i][j] << " ";
}
return 0;
}
}
assert(false);
return 0;
}