题目链接:http://codeup.cn/problem.php?cid=100000591&pid=0
题目描述
输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。
输入
输入有多组数据。
每组一行,输入n。
输出
输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开,最后一个素数后面没有空格),如果没有则输出-1。
样例输入
70
样例输出
11 31 41 61
代码
#include<stdio.h>
const int maxn = 10001;
int prime[maxn];
int main() {
int n;
while(scanf("%d", &n) != EOF) {
if(n <= 11){
printf("-1\n");
continue;
}
int num = 0;
int p[maxn] = {0};
for(int i = 2; i < n; i ++) {
if(p[i] == 0) {
if(i % 10 == 1)
prime[num++] = i;
for(int j = i + i; j < n; j += i)
p[j] = 1;
}
}
for(int i = 0; i < num; i ++) {
printf("%d", prime[i]);
if(i < num - 1)
printf(" ");
}
printf("\n");
}
return 0;
}