#include<stdio.h>
#include<math.h>
int a[110000+2],b[110000+2];
void fun()
{ int i,j;
for(i=2;i<(int)sqrt(110001)+1;i++)
{
if(b[i] == 1)
continue;
for(j=i*i; j<110001; j+=i)
{
b[j] = 1;
}
}
int ans = 0;
for( i=2; i<110001; i++)
{
if(b[i] == 0)
a[ans++] = i;
}
}
int main(){
int M,N,i,k=0;
scanf("%d%d",&M,&N);
fun();
for(i=M-1;i<N;i++)
{
k++;
if(k%10==0)
printf("%d\n",a[i]);
else if(i == N-1)
printf("%d",a[i]);
else
printf("%d ",a[i]);
}
return 0;
}
1013(没有什么是空间和时间不能解决的 只要数组够大)
最新推荐文章于 2025-06-04 00:59:09 发布
本文介绍了一个用于筛选素数的算法实现。通过此算法可以高效地找出一定范围内的所有素数,并采用特定格式输出这些素数。该算法首先标记掉所有非素数,然后输出剩余的素数。
429

被折叠的 条评论
为什么被折叠?



