给出一个大于等于2的正整数 n,判断它是不是一个素数(质数)
注:
1、素数(质数):除了1和它本身之外,没有其他的因数;
2、合数:除了1和它本身之外,还有其他的因数;
3、1既不是质数,也不是合数;
方法一:
可以从 2 开始一直到(n-1)判断,如果有是 n 的因数,则说明 n 不是素数,反之是素数;
方法二:
不用从 2 到(n-1)判断,只需从 2 到(根号n)判断即可;
明显使用方法二效率更高,所以,这里仅实现方法二
#include
#include
using namespace std;
bool function(int n){
if(n == 2 || n == 3)
return true;
else{
for(int i = 2; i <= sqrt(n); i++)//查看从2到(根号n)是否有它的因数
if(n % i == 0)
return false;
return true;
}
}
//将正整数m~n之间的素数输出
void function(int m, int n){
for(int i = m; i <= n; i++){
int flag = 0;//0是,1不是
for(int j = 2; j <= sqrt(i); j++){
if(i % j == 0){//不是素数
flag = 1;//更新
break;
}
}
if(flag == 0)//是素数
cout << i << " ";
else if(flag == 1)//不是
;
}
}