码迷,mamicode.com
首页 > 其他好文 > 详细

筛选法求素数

时间:2014-12-03 13:51:18      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:blog   io   os   sp   for   div   log   amp   as   

// 100 prime number
// 筛选法 即:“埃拉托色尼筛选法”
// 找出一个非素数就把它挖掉,最后剩下就是素数
/*
 * 找出1~n的素数表
 * 1、挖去1
 * 2、用下一个未挖去的数p去除p后面各数,把p的倍数挖掉
 * 3、检查p是否小于n的整数部分(如果n=1000,则坚持p<31?),
 *    如果是,则返回(2)继续执行,否则结束。
 * 4、剩下的就是素数了
 */
#include<iostream>
#include<iomanip>
using namespace std;
#include<cmath>
int main() {
	int i, j, n, a[101];
	for (i = 1; i <= 100; i++) {
		a[i] = i;
	}
	a[1] = 0;
	for (i = 2; i < sqrt(100); i++) {
		for (j = i + 1; j <= 100; j++) {
			if (a[i] != 0 && a[j] != 0) {
				if (a[j] % a[i] == 0) {
					a[j] = 0;
				}
			}
		}
	}
	cout<<endl;
	for (i = 1, n = 0; i <= 100; i++) {
		if (a[i] != 0){
			cout<<setw(5)<<a[i]<<" ";
			n++;
		}
		if (n == 10) {
			cout<<endl;
			n = 0;
		}
	}
    cout<<endl;
    return 0;
}

筛选法求素数

标签:blog   io   os   sp   for   div   log   amp   as   

原文地址:http://www.cnblogs.com/humingx/p/4139710.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!