基础数论知识:一个整数不能整除他的平方数之内的整数就是素数
#include <iostream>
#include <cassert>
#include <cmath>
using namespace std;
int isprime(int x)
{
int i,m;
assert(x >= 0); //利用宏来限制非法输入
if(x == 1) return 0;
m = floor(sqrt(x) + 0.5);//+0.5以避免浮点数的陷阱
for(i = 2;i <= m; ++i)// 初等数论知识:一个整数不能整除他的平方数之内的整数就是素数
if(x % i == 0) return 0;
return 1;
}
bool isPrime(int b)
{
for(int j=2;j<b/2+1;j++)
{
if(b%j==0)
return false;
}
return true;
}
floor 函数的作用是舍去多余的,如5.8 就是5 事实上讲什么避免浮点数的陷阱其实是没有必要的