C++判斷一個數是否爲素數

兩種寫法,思路一樣的,做個記錄,以備後續查看

法一:

#include <iostream>
using namespace std;
int main()
{
	int n,t=1;
	cin >> n;
	if (n<2)
	{
		cout << n << "不是素數" << endl;//1既不是素數也不是合數,素數從2開始
		return 0;
	}
	for (int i = 2; i < sqrt(n)+1;i++)//也可用n/2,不過計算量要比sqrt大一些
	{
		if (n%i == 0) 
		{
			t = 0;
			break; 
		}
	}
	if (t) cout << n << "是素數" << endl;
          else cout << n << "不是素數" << endl;
	return 0;
}

法二:

#include <iostream>
using namespace std;
bool sushu(int n)
{
	for (int i = 2; i < sqrt(n)+1; i++)//也可用n/2,不過計算量要比sqrt大一些
	{
		if (n%i == 0)
			return false;
	}
	return true;
}
int main()
{
	int n;
	cin >> n;
	if (n<2)
	{
		cout << n << "不是素數" << endl;//1既不是素數也不是合數,素數從2開始
		return 0;
	}	
	if (sushu(n)) cout << n << "是素數" << endl;
	else cout << n << "不是素數" << endl;
	return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章