博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试题:判断一个数是否为素数
阅读量:5239 次
发布时间:2019-06-14

本文共 451 字,大约阅读时间需要 1 分钟。

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

 

对于每个数n,其实并不需要从2判断到n-1,这样效率极低。

我们知道,一个数若可以进行因数分解,那么分解时得到的两个数一定是一个小于等于sqrt(n),一个大于等于sqrt(n)

据此,遍历到sqrt(n)即可,因为若sqrt(n)左侧找不到约数,那么右侧也一定找不到约数。

1 public static boolean isPrime(int num) {2         int temp = (int) Math.sqrt(num);3         for (int i = 2; i <= temp; i++) {4             if (temp % i == 0)5                 return false;6         }7         return true;8     }

 

转载于:https://www.cnblogs.com/kkkky/p/7797655.html

你可能感兴趣的文章
selenium学习中遇到的问题
查看>>
[Linux]PHP-FPM与NGINX的两种通讯方式
查看>>
Java实现二分查找
查看>>
架构图-模型
查看>>
黑马程序员_Java基础枚举类型
查看>>
UIImage 和 iOS 图片压缩UIImage / UIImageVIew
查看>>
django ORM创建数据库方法
查看>>
php7 新特性整理
查看>>
RabbitMQ、Redis、Memcache、SQLAlchemy
查看>>
知识不是来炫耀的,而是来分享的-----现在的人们却…似乎开始变味了…
查看>>
口胡:[HNOI2011]数学作业
查看>>
数据库锁机制及乐观锁,悲观锁的并发控制
查看>>
03 线程池
查看>>
手机验证码执行流程
查看>>
设计模式课程 设计模式精讲 2-2 UML类图讲解
查看>>
Silverlight 的菜单控件。(不是 Toolkit的)
查看>>
初识lua
查看>>
jquery的contains方法
查看>>
linux后台运行和关闭SSH运行,查看后台任务
查看>>
CAN总线波形中ACK位电平为什么会偏高?
查看>>