输入有多组数据。 每组一行,输入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; }质数筛法