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 <math.h> //这个要添加math.h,因为要用到求平方根的函数sqrt
bool is

本文分析了C语言中判断素数的三种算法,从最简单的遍历到基于素数特性的优化方法,详细讨论了每种算法的时间复杂度。在Linux环境下,通过编译运行,验证了算法的效率,结果显示优化后的算法运行时间更短。
最低0.47元/天 解锁文章

1051

被折叠的 条评论
为什么被折叠?



