目录
1.题目
用筛选法求n以内的素数。筛选法求解过程为:将2~n之间的正整数放在数组内存储,将数组中2之后的所有能被2整除的数清0,再将3之后的所有能被3整除的数清0 ,以此类推,直到n为止。数组中不为0 的数即为素数。
数组中的数一个一个除以n(n从2开始),将所有是n的倍数清零
2.思路
用一个数组来接收一定范围内的数,如果这些数除了本身和1之外,还是其他数的倍数直接清
零。(主要是如何筛选他是不是别的数的倍数)
3.代码实现
#include <stdio.h>
int main()
{
int n = 0;
int arr[100] = { 0 };
int i = 0;
while (~scanf("%d", &n))
{
for (i = 2; i <= n; i++)//因为是连续的整数且从二开始所以数组的下标也可以从2开始方便后面的计算
{
arr[i] = i;//下标于数相对应
}
for (i = 2; i <= n; i++)//查看数组里的数是否是别的数的倍数
{
int j = 0;