所谓“筛选法”指的是“埃拉托色尼(Eratosthenes)筛法”。他是古希腊的著名数学家。他采取的方法是,在一张纸上写上1到100全部整数,然后逐个判断它们是否是素数,找出一个非素数,就把它挖掉,最后剩下的就是素数。
原理
先将所有范围内的正整数列出,构成数集A。
(1) 从A中删去1;
(2) 从A中删去2的整数倍;
(3) 从A中删去3的整数倍;
(4) 从A中删去5的整数倍;
…
(n) 从A中删去范围k的开方(取整)的整数倍,过程结束。
实现
求100以内所有质数。
#include <cstdio>
#include <cmath>
void prime(int n, int result[]) {
int i;
for(i = 0; i <= n; i++) {
result[i] = i;
}
int j;