兩種寫法,思路一樣的,做個記錄,以備後續查看
法一:
#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;
}