题解 | #筛选法求素数#
筛选法求素数
https://www.nowcoder.com/practice/06c3dcc303654ef4926654023eca1e5a
#include <stdio.h> /*利用筛选法求素数个数*/ int main() { //定义数据范围 int n = 0; //多组输入 while (scanf("%d", &n) == 1) { //创建数组,存放2~n之间的数字 int arr[101] = { 0 }; int i = 0; for (i = 2; i < n + 1; i++) { arr[i - 2] = i; } //循环清0 int j = 0; for (j = 2; j < n + 1; j++)//要被除的数字 { for (i = j-1; i < n - 1; i++) { if (arr[i] % j == 0) { //能被j整除,就赋值为0 arr[i] = 0; } } } //判断不为0的数,并打印输出和计算个数 int count = 0;//存放不为0的数字的个数 for (i = 0; i < n - 1; i++) { if (arr[i] != 0) { printf("%d ", arr[i]); count++; } } printf("\n%d", n - 1 - count); } return 0; }