/*
输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。
*/
#include <stdio.h>
int prime[1000];
int primesize;
bool mark[10001];
void Count(int n ){
for (int i=1; i<n; i++) {
mark[i]=false;
}
primesize=0;
for (int i=2; i<n;i++) {
if (mark[i]==true) continue;
prime[primesize++]=i;
for (int j=i*i;j<=n;j+=i) {
mark[j]=true;
}
}
}
int main(){
int n;
while (~scanf("%d",&n)) {
bool empty=true,is_first=true;
Count(n);
for (int i=0; i<primesize; i++) {
if (prime[i]%10==1){
empty=false;
if (is_first==true) {
printf("%d",prime[i]);
is_first=false;
}
else
printf(" %d",prime[i]);
}
}
if (empty==true)
printf("-1\n");
}
return 0;
}
判断素数个数
最新推荐文章于 2022-08-27 18:08:35 发布