质数 只有1和它本身两个 因数 的自然数,叫质数(或称素数)。
一种检查质数的简单方法:令变量 k 由 2 开始递增取值,一个个试除 n,直至完成判断。
整个工作可以通过一个循环完成,如果循环中找到 n 的真因子,就可以确定 n 不是质数;如果直到循环结束也没找到真因子,n 就是质数。
#include <iostream>
using namespace std;
int main() {
int n;
cout << "输入一个数" << endl;
cin >> n ;
bool founder;
int k;
for (founder = false, k = 2; k * k <= n; k++) {
if (n % k == 0) {
founder = true;
break;
}
}
if (founder) {
cout << "不是质数" << endl;
} else {
cout << "是质数" << endl;
}
return 0;
}
注意: cin语句不能乱加endl;
以及if只有单条件语句不用加括号,其余都要加,如此处不加括号无法执行break语句跳出循环,下一轮循环又将founder重新赋值为false导致出错。
k*k<=n;的写法可以减少循环次数