赞
踩
给出一个大于等于2的正整数 n,判断它是不是一个素数(质数)
注:
1、素数(质数):除了1和它本身之外,没有其他的因数;
2、合数:除了1和它本身之外,还有其他的因数;
3、1既不是质数,也不是合数;
方法一:
可以从 2 开始一直到(n-1)判断,如果有是 n 的因数,则说明 n 不是素数,反之是素数;
方法二:
不用从 2 到(n-1)判断,只需从 2 到(根号n)判断即可;
明显使用方法二效率更高,所以,这里仅实现方法二
#include<iostream>
#include<cmath>
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)//不是 ; } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。