python判断素数的方法简书_判断素数

素数的定义

素数:又称质数。是大于1自然数中的除了自身和1以外不能别其他数整除的数字。

第一种方法

利用这个素数的定义,我们可以得出第一种判断素数的方法:

int isPrime1(int n)

{

int i = 0;

//2是素数

if(n <= 3)

return n > 1;

//当n不能被除了1和n自身整除的数外的数是素数

for(i = 2; i < n; i ++)

{

if(n % i == 0)

return 0;

}

return 1;

}

这个方法是最简单的判断方法,它使用一个for循环来让n一次次的除以小于n的每个数,如果除尽了的话,就不满足素数的定义。

但是这个方法也是计算量最大的。它总共会计算n-2次。

第二种方法

第二种方式是:如果 n 能够被 2 ~

之间的数整除就不是素数(合数),反之为素数。

所以,根据这个性质我们可以减少判断的次数来节约运算时间。

int isPrime2(int n)

{

int i = 0;

if(n <= 3)

return n > 1;

//讲判断条件改为 i <= sqrt(n),即对n开平方

for(i = 2; i <= sqrt(n); i ++)

{

if(n % i == 0)

return 0;

}

return 1;

}

这个方法比上一个方法减少了很多的时间。所以使用这种方法的时候会更能提高程序的效率。

有人可能会问,这里为什么是

因为一个数 N 的的因数可以分为两部分,一部分是小于

的,另一部分是大于

的。而小于的那部分和大于的一一对应。所以只需要判断 2 ~

即可。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值