质数(素数)判断

质数(素数):是指大于1且只能被1和它本身整除的正整数,2是最小素数,素数有无穷个

那么我们一般情况下字母判断一个数是不是质数呢?
首先我们可以根据他的性质来进行判断:

if(n<2) return false;
forint i=2;i<n;i++{
    if(n%i==0) return false;
}
return true;

那么是不是有更简单的思路呢?
我们仔细思考下,如果一个数不是质数,那他必然有一个小于等于他的平方根的因数,和一个大于等于他的平方根的因数,因此我们判断一个数是不是质数,只需要我们判断2~sqrt(n)之间是否有数能被n整除就可以了,节约了一点资源(虽然不算多ahhh)
只需要把for语句改成

forint i=2;i*i<=n;i++

那么其他的优化思路是不是还有呢?
比如大于2 的偶数肯定不是质数等性质,诸如此类,就需要你在写题的过程中自己根据题意做出优化的选择了。

接下来我们放几道练习题吧

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值