一个正整数num,除了1和自身这两个因子之外, 如果还有其他因子,那么这个因子最多是sqrt(num),也就是num这个数的平方根。 通过c++代码证明一下。
#include<iostream>
#include<cmath>
using namespace std;
bool isPrime(int num){
if(num<2) return false;
for(int i=2;i<=sqrt(num);i++){
if(num%i==0) return false;
}
return true;
}
int main(){
int num;
cin>>num;
if(isPrime(num)) cout<<num<<"是素数"<<endl;
else cout<<num<<"不是素数"<<endl;
return 0;
}
首先定义一个函数isPrime,判断一个数是否为素数,如果小于2则不是素数,如果在2到该数平方根范围内能被整除,则不是素数,最后返回是否为素数的布尔值。
在主函数中输入一个数,如果是素数则输出该数是素数,否则输出该数不是素数。
因为除了1和自身这两个因子之外,如果还有其他因子,那么这个因子最多是sqrt(num),因此只需判断该数在2到sqrt(num)范围内是否存在因子即可。
原文地址: https://www.cveoy.top/t/topic/qX3 著作权归作者所有。请勿转载和采集!