public class QualityFactor {/**
     * 因为不管怎么计算由于非素数数都可以通过1·9中通过乘计算得出所以除了1和2只需要继续是否可以被2-9整除就可以
     * 这一说法利用了提取最小公因式来计算得出
     * 当然要避免一个重要问题就是当它是个位数字的时候也就是1 、 2 、 3 、 5 、7的时候直接返回
     * 这样计算的好处在于避免了传统递归从1到n的反复计算更加高效的计算出素数面对千位以上的数据使用
     * 也避免了过多使用这一算法(冗余重复性计算)的:
     * 判断素数的方法:用一个数分别去除2到sqrt(这个数的平方根),如果能被整除, 则表明此数不是素数,反之是素数这一种算法更加快捷
     * 避免了重复计算的冗余
     */
    public boolean isPrimeNumber(int divisor, int number) {if (number % divisor == 0) return false;else if (number == 1 || number == 2 || number == 3 || number == 5 || number == 7
                || number == 11 || number == 13 || number == 17 || number == 19) return true;else if (number <= 20) return false;else if (divisor == 9) {return isPrimeNumber(11, divisor);} else if (divisor > 9) {if (divisor < Math.sqrt(number)) {return isPrimeNumber(divisor + 1, number);} else if (divisor == Math.sqrt(number)) return false;else return true;}return isPrimeNumber(divisor + 1, number);}public void getQualityFactor(int number) {String out = number + "=";if (isPrimeNumber(2, number)) out = out + number;else {while (number != 1) {for (int j = 2; j <= number; j++) {/*如果每一次Number都能整除j则让Number/=j*/
                    if (number % j == 0) {number /= j;/*整除完判断是否是素数这样就避免了最后剩下一个比较大的素数然后还要进行计算重复计算*/
                        if (number!=1){out += j + "x";if (isPrimeNumber(2,number)){out +=  number;number = 1;}}else out +=  j ;break;}}}}System.out.println(out);}
}

java求质因数算法相关推荐

  1. 求质因数只能是2,3,5,7的第n大个数(丑数求解)

    题目:求质因数只能是2,3,5,7的第n大个数.例如:1,2,3,4,5,6,7,8,910,12,14,15,16,18 方法一:循环判断每一个数(自然数序列)是否符合丑数的定义,直至第n个数.还有 ...

  2. Java 数据结构与算法系列之冒泡排序

    一.前言 相信大部分同学都已经学过数据结构与算法这门课了,并且我们可能都会发现一个现象就是我们所学过的数据结构与算法类的书籍基本都是使用 C 语言来写的,好像没见过使用 Java 写的数据结构与算法. ...

  3. Java数据结构与算法——树(基本概念,很重要)

    声明:码字不易,转载请注明出处,欢迎文章下方讨论交流. 有网友私信我,期待我的下一篇数据结构.非常荣幸文章被认可,也非常感谢你们的监督. 前言:Java数据结构与算法专题会不定时更新,欢迎各位读者监督 ...

  4. Java常见排序算法

    Java常见排序算法 转载于:https://www.cnblogs.com/hfultrastrong/p/7829889.html

  5. Java数据结构与算法——插入排序

    声明:码字不易,转载请注明出处,欢迎文章下方讨论交流. 前言:Java数据结构与算法专题会不定时更新,欢迎各位读者监督.本篇文章介绍排序算法中插入排序算法,包括插入排序的思路,适用场景,性能分析,ja ...

  6. JAVA版连连看算法研究

    JAVA连连看之算法: 连连看连接方式的类型:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:off ...

  7. java 求交集 算法_Java计算交集,差集,并集的方法示例

    Java计算交集,差集,并集的方法示例 发布时间:2020-10-07 10:37:46 来源:脚本之家 阅读:106 作者:benbenkui 本文实例讲述了Java计算交集,差集,并集的方法.分享 ...

  8. Java数据结构和算法(六)——前缀、中缀、后缀表达式

    前面我们介绍了三种数据结构,第一种数组主要用作数据存储,但是后面的两种栈和队列我们说主要作为程序功能实现的辅助工具,其中在介绍栈时我们知道栈可以用来做单词逆序,匹配关键字符等等,那它还有别的什么功能吗 ...

  9. Java数据结构和算法(一)——简介

    本系列博客我们将学习数据结构和算法,为什么要学习数据结构和算法,这里我举个简单的例子. 编程好比是一辆汽车,而数据结构和算法是汽车内部的变速箱.一个开车的人不懂变速箱的原理也是能开车的,同理一个不懂数 ...

最新文章

  1. dede首页调用文章标题|概述|所在栏目
  2. CV之NS之VGG16:基于预训练模型VGG16训练COCO的train2014数据集实现训练《神奈川冲浪里》风格配置yml文件
  3. EOS从入门到精通-设计背景与DPOS算法(文字稿)
  4. Linux——自定义服务命令
  5. 错误之Only one usage of each socket address (protocol/network address/port)解决办法
  6. 1107班html大赛比赛说明 同学们需注意的事项
  7. Origin绘制带误差棒的曲线(Error Band)
  8. a标签隐藏真实地址_推荐软件:Clover(窗口标签化工具)
  9. 第二阶段冲刺第六天,6月5日。
  10. Codechef Black Nodes in Subgraphs(树型背包)
  11. JAVA随机抽取一名幸运观众(手动输入观众)小实例
  12. SSM框架实战详细教程(六)Spring MVC贯穿项目实战
  13. 计算机上怎么带源地址ping,如何带源地址ping
  14. 挑战10的1,143,913次方种算法组合:这都不是事儿~~
  15. Pygame基础知识(14)-pygame.image.load()对象和blit()绘制
  16. h3c查看光纤光功率
  17. html之行间样式和外部样式以及内部样式
  18. [野狐行][辅助开发系列课程][2016/4/27][一重门公开课全集][官方网站已开放]
  19. 自己搭建文件服务器的思路
  20. 《华为工作法》4 科学合理的工作原则

热门文章

  1. 如何正确处理nonce
  2. 长调用与短调用 调用门
  3. APP自动化(一):tidevice使用
  4. SpringCloud-Gateway配置及持久化、过滤器、异常处理
  5. Java珠穆朗玛峰案例
  6. Web Work 简介
  7. Java小程序 —— 简单五子棋
  8. pyecharts折线图上symbol(小圆圈)颜色的修改方法
  9. echarts改变字体颜色
  10. PLM系统在制造业的应用(下)