文章
13
粉丝
386
获赞
2
访问
65.2k
先预处理找到10000内的所有素数,然后再找出n以内的所有满足条件的素数即可
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
const int N = 10000 + 10;
bool arr[N];
vector<int> v;
void Initial(){
fill(arr, arr + N, true);
for(int i = 2; i < N; i++){
if(arr[i]){
v.push_back(i);
for(int j = i * i; j < N; j += i)
arr[j] = false;
}
}
}
vector<int> Find(int n){
vector<int> ans;
int index = 0;
while(v[index] < n){
if(v[index] % 10 == 1) ans.push_back(v[index]);
index++;
}
return ans;
}
int main(){
Initial();
int n;
while(scanf("%d", &n) != EOF){
vector<int> ans = Find(n);
if(ans.size() == 0) printf("-1\n");
else{
for(int i = 0; i < ans.size() - 1; i++)
printf("%d ", ans[i]);
printf("%d\n", ans[ans.size()...
登录后发布评论
暂无评论,来抢沙发