判断素数

一直都没有耐心研究素数,总觉得无聊或者什么的,今天静下心来研究了一下它!

素数:不能被1和它本身的数整除的数

判断:仅需判断从2 -- sqrt(n)之间闭区间(例如25必须判断2-5不能漏掉5)的数有没有可以整除此数即可

注意:偶数不可能为素数,故在使用for循环时是用递增(减)2的方式循环

2是偶数里唯一的素数

另注:关于1是不是素数,书本既不清楚了,看到网路上比较好的解释是:在教材中规定1既不是素数也不是合数

,在科学研究时则不那么严格,有文献表明也有将1作为素数的。

public class primeProblem{ /** * @param args */ public static void main(String[] args) { int n = 100, cnt = 0; //2 is a unique prime number in even integer System.out.println("2"); cnt++; for(int i = 1; i < n; i += 2){ if(isPrime(i)){ System.out.println(i); cnt ++; } } System.out.println("statistics:" + cnt); } public static boolean isPrime(int num){ //tell 2 -- sqrt(n) is enough! for(int i = 2; i <= Math.sqrt(num); i++){ if(num % i == 0) return false; } return true; } }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值