试除法判定质数(素数)

#include <iostream>
#include <algorithm>
using namespace std;
bool is_prim(int n)
{
if(n<2) return false;
for(int i=2;i<=n/i;i++)//i<=sqrt(n)每次求的时候会调用一下sqrt()函数
if(n%i==0)//i*i<n 假如i是int型时最大是2147483647,i*i存在溢出风险,溢出会出现负数影响判断
return false;
return true;
}
int main()
{
int n;
cin>>n;
if(is_prim(n)) puts("Yes");
else puts("NO");
return 0;
}

上一篇:【Kruskal 和 Prim】


下一篇:图的最小生成树--Prim算法与Kruskal算法