C语言素数判断算法分析

本文分析了C语言中判断素数的三种算法,从最简单的遍历到基于素数特性的优化方法,详细讨论了每种算法的时间复杂度。在Linux环境下,通过编译运行,验证了算法的效率,结果显示优化后的算法运行时间更短。
摘要由CSDN通过智能技术生成

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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值