输入有多组数据。 每组一行,输入n。
输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开,最后一个素数后面没有空格),如果没有则输出-1。
100
11 31 41 61 71
#include <stdio.h>
int su(int n);
int su(int n){
int i;
for(i=2;i<n;i++){
if (n%i==0) {
return 0;
}
}
return 1;
}
int func(int n){
if (n%10==1) {
return 1;
}else {
return 0;
}
}
int main() {
int n,i;
scanf("%d",&n);
for(i=2;i<n;i++){
if (su(i)==1&&func(i)) {
printf("%d ",i);
}
}
return 0;
} #include <stdio.h>
#define N 10001
int main(){
int x;
int a[N] = {0};
scanf("%d", &x);
for (int i = 2; i < N; i ++) {
if (a[i]==0) {
for (int j = 2; i*j<N; j ++) {
a[i*j] = -1;
}
}
}
int flag = 0;
for (int i = 2; i < x; i ++) {
if (a[i]==0&&i%10==1) {
printf("%d ", i);
flag = 1;
}
}
if (flag==0) {
printf("-1\n");
}
return 0;
}
质数筛法