菜鸟 勿喷 解法类似于求第n个素数的筛法
#include <stdio.h>
#define N 100000
int a[N];
int luck[N];
int main()
{
for(int i=1;i<N;i++)a[i]=1;//初始化
for(int i=1;i<N;i++)if(i%2==0)a[i]=0;//按照题目描述筛掉2的倍数
int rear=3;//记录上次得到的最后一个幸运数
while(rear<N-10000)//rear不会到N 所以牺牲一点余量
{
int k=0;
for(int i=1;i<N;i++)
{
if(a[i]==1)//第k个数
k++;
if(k%rear==0)//k为序号
a[i]=0;
}
for(int i=rear+1;i<N;i++)
{
if(a[i]==1)
{
rear=i;
break;
}
}
}
for(int i=1;i<N-10000;i++)
if(a[i]==1)
printf("%d\n",i);
return 0;
}