素数的问题

来源:互联网 发布:wifi网络连接不可用 编辑:程序博客网 时间:2024/05/21 11:20

判断一个数是否是素数的问题


素数的定义

质数,又称素数,是只能被1或者自己整除的自然数


判断素数的方法

设一数n(n>2),若其不是素数必存在,k属于[2,n] 使得k%n==0;
所以判断方法很简单只需遍历2到n若没有找到k则n为素数

考虑到:判断过程中若存在k,则必定存在k1,且k1*k=n。易得k1和k必有一个小于等于sqrt(n),
故只需考虑[2,sqrt(n)]即可
注:是闭区间


代码如下

#include<iostream>#include<math.h>using namespace std;bool isprime(int n){    if (n <= 1) return false;   //特判    int sqr = (int)sqrt(1.0*n);  //sqrt()的参数为double故n需要乘以1.0    for (int i = 2; i < =sqr;i++)   //这里等号不能少    if (n%i == 0) return false;    return true;}
原创粉丝点击