幸运数  
    |   
               
              
              幸运数是从一个初始数列开始,经由一些列筛选步骤后所得的数列。
  
              
              考虑所有奇数组成的初始自然数列$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
 
               |  
           
         
        
            
            |    |