幸运数
* * * *
拉格朗日计划
* * * *
幸运数

幸运数是从一个初始数列开始,经由一些列筛选步骤后所得的数列。

考虑所有奇数组成的初始自然数列$a_n=2n-1$。

依次取$k=2,3,4,\ldots$,每次删去数列中的第$a_k,2a_k,3a_k,\ldots$项,并将所得的数列作为下一步的初始数列a。

下例展示了这一过程:

              初始,取k=2,第2项的值是3:

              1 3 5 7 9 11 13 15 …
                ^ X     X

              删除第3、6、9、12。。。项后得到新数列,接下来取k=3,此时第3项的值是7:

              1 3 7 9 13 15 19 21 …
                  ^         X

              删除第7、14、21、28。。。项后得到新数列。。。:

              1 3 7 9 13 15 21 25 …
              
打印该数列的前1000项,每个数单独一行。

本题难度:



解答

容易看出$a_k\ge k$总是成立,因此按题意边删边打印即可。

最终代码有三行。

代码长度:79字节 vs. 全站第一:55字节。

k=1
a=list(range(1,9999,2))
while k<1001:del a[a[k]-1::a[k]];print(a[k-1]);k+=1