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