Codeup 1945 问题 A: 素数

题目链接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;
}
发布了162 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Rhao999/article/details/104198295