升级版素数(质数)判断详解

文章介绍了素数的定义,即只有1和其本身两个正因数的自然数。接着,提供了两种判断素数的方法:一种是传统的逐个除法,另一种是利用平方根进行优化,减少运算次数。优化后的代码只需判断到输入数的平方根,显著提升了效率。注意使用平方根函数时需包含<math.h>头文件。
摘要由CSDN通过智能技术生成

一: 什么是素数(质数)?

质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

二:素数(质数)的判断方法?

根据定义,例如我们要判断31是否是素数,我们就用31去挨个除以(2~30)里面的每一个数,如果都除不尽那么就代表31是素数, 代码示例如下
#include<stdio.h>
int main()
{
	int i = 0;
	int j = 0;
	scanf("%d", &i);
	for (j = 2; j < i; j++)
	{
		if (i % j != 0)
			printf("是素数");
		break;
	}
	return 0;
}

运行结果:在这里插入图片描述

优化版判断代码

使用平方根(sqrt)快速判断,减少运算量,我们举个例子,例如我们要判断25是否为素数,我们只需要判断[2~sqrt(25)=5]中的每一个整数是否是25的因数,这样我们从判断[2—24]变成判断[2—5]大大减少运算量
在这里插入图片描述
代码示例如下:

#include<stdio.h>
#include<math.h>
int main()
{
	int i = 0;
	int j = 0;
	scanf("%d", &i);
	for (j = 2; j < sqrt(i); j++)
	{
		if (i % j != 0)
			printf("是素数");
		break;
	}
	return 0;
}

注意:sqrt函数必须引用头文件<math.h>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值