C语言素数判断算法分析
1 素数的定义
- 素数:也叫质数,是指大于1,且只能被1和它自身整除的自然数;
- 1既不是素数,也不是合数;
- 2是最小的素数;
2 三种算法分析
2.1 最简单最易懂的判断方法
- 2,3是质数,直接进行处理;
- 大于3的数,根据素数的定义,从2开始挨个进行求余运算,若中间出现能被整除的数,可判断不是素 数;
- 时间复杂度:O(n);
#include <stdio.h>
bool isPrime_1(int num)
{
int i = 0;
if(num <=3)
return (num >1);
for(i=2; i < num; i++)
{
if(num % i == 0)
return false;
}
return ture;
}
2.2 初步优化
- 根据乘法的特性,可知若从2开始遍历到被判断数的平方根都没有找到能被整除的数,则这个数一定为素数。
- 时间复杂度:O( n \sqrt{n} n)
#include <stdio.h>
#include