文章

33

粉丝

78

获赞

3

访问

19.0k

头像
素数 题解:
P1375 北京航空航天大学机试题
发布于2024年3月19日 09:56
阅读数 439

#include <stdio.h>
#include <cstring>
#include <iostream>
using namespace std;
const int maxn = 1000000 + 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] = 1;
			if(i % prime[j] == 0) break;
		}
	}
}
int main(){
	getprime();
	int n;
	while(cin >> n){
		int count = 0;
		int num[maxn];
		for(int i = 1;i<n;i++){
			if(prime[i] <n&&prime[i]%10 ==1)
			  num[count++] = prime[i];
			if(prime[i] >=n)
			  break;
		}
		if(count == 0) cout << "-1"<<endl;
		else 
		  for(int i = 0;i < count;i++)
		    cout <<num[i] <<" ";
	}
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发