
题目
解决代码及点评
/************************************************************************/
/*
7. 用筛选法求 2到 100之间的素数。
方法如下:首先 2是素数,凡 2 的倍数都不是素数,于是把这些数从数表中筛去,
2以后没有被筛去的第一个数是 3, 然后把 3的倍数都从数表中筛去, 3以后没被筛去的第一个数是 5
,然后把 5 的倍数都从数表中筛去。如此下去,直到遇到某数 K(≤ N),其后没有数可筛选为止,
这时保留下的未被筛去的数就是 2到 N的素数。
*/
/************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void main()
{
const int N=101;
int Sn=(int)sqrt(double(N-1)); // 筛选法只要筛选到sqrt(N-1)
int arr[N]; // N个标记,如果arr[k] = 1表示k是素数
for (int