欢迎辞

欢迎来到“笃志以砺,决起而飞”!
如果您是第一次来到本站,建议访问本站导读以便更快地了解本站。
如果您喜欢本站,欢迎订阅

 

2012 年五月
« 四  
 123456
78910111213
14151617181920
21222324252627
28293031 

C++笔记:使用std::vector储存质数表

本程序中最新使用的知识点:
1、常量整数 const int maxnum。
2、math.h 标准库。
3、std::vector 和 std::vector::iterator 类型。

程序如下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/* 寻找所有的质数,并将寻找到的质数放入 vector 中进行穷举。
 * By Ceeji
 */
const int maxnum = 10000;
 
#include <iostream>
#include <vector>
#include <math.h>
 
using namespace std;
 
typedef vector<int> intarr;
 
int main()
{
	intarr p = intarr();
	bool iszs;
	int max;
	for (int i = 1; i != maxnum; ++i) // 从 1 开始寻找质数。
	{
		if (i == 1)
		{
			iszs = false;
		}
		else
		{
			if (i == 2)
			{
				iszs = true;
			}
			else
			{
				max = (int)floor(sqrt((double)i));
				iszs = true;
				for (int j = 2; j != max + 1; ++j)
				{
					if (i % j == 0)
					{
						// 不是质数。
						iszs = false;
						break;
					}
				}
			}
			if (iszs)
			{
				p.push_back (i);
			}
		}
	}
	intarr::iterator iter = p.begin ();
	// 输出
	while (iter != p.end ())
	{
		cout << *(iter++) << endl;
	}
	return 0;
}

您也许喜欢

  1. C++笔记:习题 4.32-4.33
  2. C++笔记:迭代器
  3. C++笔记:习题4.28
  4. C++笔记:习题 4.34 – 4.35
  5. POJ 1328 Radar Installation 题解
  6. POJ 1308 Is It A Tree 题解

3 comments to C++笔记:使用std::vector储存质数表

Leave a Reply

  

  

  

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>