1. 程式人生 > >c/c++_找出100到200之間的全部素數並輸出

c/c++_找出100到200之間的全部素數並輸出

/*  
* Copyright (c) 2011, 煙臺大學計算機學院  
* All rights reserved.  
* 作    者:解曉東   
* 完成日期:2012 年 10 月 22 日  
* 版 本 號:v1.0  
*  
* 輸入描述:
* 問題描述:找出100到200之間的全部素數並輸出 
* 程式輸出:  
* 問題分析: 
* 演算法設計:  
*/  

# include <iostream>

# include <cmath>

# include <iomanip>

using namespace std;

int main()
{
	int m, k, i, n = 0;
	bool prime;//定義bool變數
	
	for(m = 101; m <= 200; m += 2)//判斷m是否為素數,m由101變化到200,增量為2
	{
		prime = true;//迴圈開始時設prime為真,即先認為m為素數
		k = int(sqrt(m));//用k代表sqrt(m)的整數部分
		for(i=2; i<=k; ++i)//此迴圈的作用是將m被2至sqrt(m)除,檢查是否能整除
		{
			if(m%i == 0)//如果能整除,表示m不是素數
			{
				prime = false;//使prime為假
				break;//終止執行本迴圈
			}
		}
		if(prime)//如果m為素數
		{
			cout<<setw(5)<<m;//輸出素數m,欄位寬度為5
			n += 1;//n用來累計素數的個數
		}
		if(n%10 == 0)//輸出10個數後換行
			cout<<endl;
	}
	
	cout<<endl;//最後一次執行換行
	
	return 0;
}

/*
在vc++6.0中執行的結果是:
---------------------------------------------------
  101  103  107  109  113  127  131  137  139  149
  151  157  163  167  173  179  181  191  193  197
  199
---------------------------------------------------
*/