文章

34

粉丝

0

获赞

273

访问

5.0k

头像
素数 题解:
P1375 北京航空航天大学机试题
发布于2026年3月11日 23:05
阅读数 54

#include <bits/stdc++.h>
using namespace std;

const int maxn=10000+5;
int prime[maxn];
void getPrime(){
	memset(prime,0,sizeof(prime));
	for(int i=2;i<maxn;i++){
		if(!prime[i]) prime[++prime[0]]=i;
		for(int j=1;j<=prime[0]&&prime[j]*i<=maxn;j++){
			prime[prime[j]*i]=i;
			if(i%prime[j]==0)  break;
		}
	}
}

int main(){
	getPrime();
	int n;
	while(scanf("%d",&n)!=EOF){
		int num[10000];
		int a=0,count=0;
		for(int i=2;i<maxn;i++){
			if(prime[i]>=n) break;
			if(prime[i]%10==1)	{
				num[a++]=prime[i];
				count++;
			}
		}
		if(count==0){
			printf("-1");
			break;
		}
		for(int j=0;j<count;j++){
			printf("%d",num[j]);
			if(j<count-1) printf(" "); 
		}
		printf("\n");	
	}
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发