更多资源请关注纽扣编程微信公众号
1 素数
质数又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,就是该数除了1和它本身以外不再有其他的因数;否则称为合数
1 既非素数也非合数
2 是唯一的偶素数。
2 素数的判定
1)朴素算法
根据质数的定义,可以遍历从 2 到自身看是否有被整除的数
时间复杂度
O(n)
示例代码
#include <bits/stdc++.h>
using namespace std;
/*
根据素数的定义朴素算法求解
*/
bool checkPrime(int n){
if(n==1) return false;
bool isPrime=true;
for(int i=2;i<n;i++){//n对2~n-1 逐一求余,可以整除,余数为0则不是素数
if(n%i==0)
{
isPrime=false;
break;
}
}
//n对2~n-1 逐一求余,都不能整除 则为素数
return isPrime;
}
int main(){
int x;
cin>>x;
if(checkPrime(x))
cout<<x<<" 是素数!";
else
cout<<x<<" 不是素数!";
return 0;
}
/*
输入 8
输出 8 不是素数
输入 17
输出 17是素数
*/
2)优化算法