输入一个整数 ,要求输出所有从
到这个整数之间(不包括
和这个整数)个位为
的素数,如果没有则输出
−1
。
输入格式
输入包含多组测试数据。
每组数据占一行,包含一个整数 。
输出格式
每组数据输出占一行,由小到大输出所有满足条件的素数,素数之间单个空格隔开。如果没有则输出 −1
。
数据范围
输入最多包含
输入样例:
100
输出样例:
11 31 41 61 71
#include<iostream>
using namespace std;
const int N = 10010;
bool st[N];
int prime[N], k;
void fn(){
st[1] = true;
for(int i = 2; i < N; i++){
if(!st[i]) prime[++k] = i;
for(int j = 1; prime[j] <= (N - 1) / i; j++){
st[prime[j] * i] = true;
if(i % prime[j] == 0) break;
}
}
}
int main(){
fn();
int n;
while(cin >> n){
int cnt = 0;
for(int i = 1; i < n; i += 10)
if(!st[i]) cout << i << ' ', cnt++;
if(!cnt) cout << -1;
puts("");
}
return 0;
}