leetcode(6):C++判断一个数是不是素数的标准算法

leetcode 判断一个数是不是素数的标准算法
判断素数是常用的算法,
一般的算法都是从2循环到n-1
时间复杂度较高O(n)
明显存在效率低的问题。
有人分析:
对于每个数n,其实并不需要从2判断到n-1,
一个数若可以进行因数分解,那么分解时得到的两个数一定是一个小于等于sqrt(n),一个大于等于sqrt(n),据此
并不需要遍历到n-1,遍历到sqrt(n)即可,因为若sqrt(n)左侧找不到约数,那么右侧也一定找不到约数

bool isPrim(int n)
{
	for(int i=2;i<=sqrt(n);i++)
	{
		if(n%i==0)
			return false;
		else
			return true;
	}
}

猜你喜欢

转载自blog.csdn.net/CoomCon/article/details/105897690
今日推荐