c语言判断一个数是否为素数思路,C语言判断一个数是否为素数方法解析

本文介绍了如何使用C语言判断一个数是否为素数,包括两种不同的方法:基于求平方根的简单方法和考虑质数分布规律的高效方法,并提供了完整的测试代码,确保输入的正整数正确处理。
摘要由CSDN通过智能技术生成

一、概念介绍

素数又称为质数。一个大于1的自然数(从2开始),除了1和它本身外,不能被其他自然数整除的叫做素数,否则称为合数。

0和1既不是素数也不是合数,最小的素数是2。

二、代码

方法一:

bool is_Prime(int num){

int i;

for(i = 2;i <= sqrt(num);i++){

if(num % i == 0)//一旦发现有因子,则返回false

return false;

}

return true;

}

注意:在for循环判断时不能忘记 i <= sqrt(num) 的等号,因为假设 p*p = n , n的因子是可以取到 sqrt(n) 的,如判断 9 是不是素数,如果没有等号会出现 9是素数,而实际上 9不是素数。

方法二:

关于质数分布的规律:大于等于5的质数一定和6的倍数相邻。例如5和7,11和13,17和19等等;

证明:令x≥1,将大于等于5的自然数表示如下:

··· 6x-1,6x,6x+1,6x+2,6x+3,6x+4,6x+5,6(x+1),6(x+1)+1 ···

可以看到,不和6的倍数相邻的数为6x+2,6x+3,6x+4&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值