题解 | 筛选法求素数
#include <stdio.h> int main() { int n, arr[100]; while (scanf("%d", &n) != EOF) { for (int i = 0; i < n - 1; i++) { arr[i] = i + 2; } for (int i = 0; i < n - 1; i++) { if (arr[i] != 0) { for (int j = i + 1; j < n - 1; j++) { if (arr[j] != 0 && arr[j] % arr[i] == 0) arr[j] = 0; } } } int count=0; for (int j = 0; j < n - 1; j++) { if (arr[j] != 0) { printf("%d ", arr[j]); count++; } } printf("\n%d\n",n-count-1); } return 0; }