每日经典算法题(四) 分解质因数

分解质因数:Decomposition Quality Factor

题目

将一个正整数分解质因数。例如:输入 90,打印出:90 = 2 * 3 * 3 * 5

程序分析

若对 n 进行质因数分解,应先找到一个最小的质数 k,然后以短除法的方式继续除,除不尽再除以下一个质数。

思路

求解质因数的过程与短除法类似,都是从最小的质数(2)开始除,若除不尽则从第二个质数(3)开始除,依次循环判断,所以这里我们要用 while 循环来分解质因数。因为正整数范围内 1 不存在质因数,所以从 2 开始。

我们将质因数设定为 k,针对一个数字 n,应该有如下三种情况来对应:

​ (1) 如果这个质数 k 刚好等于n,则说明分解质因数的过程已经结束,打印出即可。(break 跳出循环)
​ (2) 如果 n > k,但 n 能被 k 整除,则质数 k 为 n 的质因数,应打印出 k 的值。并用 n 除以 k 的商,作为新的正整数 n,重复执行第一步。(打印质因数,然后重新给 n 赋值)
​ (3) 如果 n 不能被 k 整除,则用 k+1 作为 k 的值,重复执行第一步。(k++)

代码示例

public class Q4_DecompositionQualityFactor {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入要分解的正整数:");int num = scanner.nextInt();int k = 2;System.out.print(num +" = ");while (num >= k){if (num == k){System.out.println(k);break;}else if (num % k == 0){System.out.print(k +" * ");num = num / k;}else{k++;}}}
}

输出结果

请输入要分解的正整数:
90
90 = 2 * 3 * 3 * 5
  • Day04 打卡成功!

每日经典算法题(四) 分解质因数相关推荐

  1. 每日经典算法题(十六) 九九乘法表

    每日经典算法题(十六) 九九乘法表 九九乘法表:Multiplication Table 99 题目 输出 9 * 9 口诀 程序分析 分行与列考虑,共9行9列,i 控制行,j 控制列 思路 非常经典 ...

  2. 每日经典算法题(十三) 逆推算法(平方根相关)

    每日经典算法题(十三) 逆推算法(平方根相关) 平方根:Square Root 题目 有一个整数,它加上 100 后是一个 完全平方数 ,再加上 168 又是一个 完全平方数 ,请问该数是多少? 程序 ...

  3. python代码基础题-python每日经典算法题5(基础题)+1(中难题)

    现在,越来越多的公司面试以及考验面试对算法要求都提高了一个层次,从现在,我讲每日抽出时间进行5+1算法题讲解,5是指基础题,1是指1道中等偏难.希望能够让大家熟练掌握python的语法结构已经一些高级 ...

  4. python每日经典算法题5(基础题)+1(中难题)

    现在,越来越多的公司面试以及考验面试对算法要求都提高了一个层次,从现在,我讲每日抽出时间进行5+1算法题讲解,5是指基础题,1是指1道中等偏难.希望能够让大家熟练掌握python的语法结构已经一些高级 ...

  5. python每日经典算法题5(基础题)+1(较难题)

    一:基础算法题5道 1.阿姆斯特朗数 如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数.判断用户输入的数字是否为阿姆斯特朗数. (1)题目分析:这里要先得到该数是多少位的,然后再把 ...

  6. 经典算法题每日演练——第十九题 双端队列

    经典算法题每日演练--第十九题 双端队列 原文:经典算法题每日演练--第十九题 双端队列 话说大学的时候老师说妹子比工作重要~,工作可以再换,妹子这个...所以...这两个月也就一直忙着Fall in ...

  7. 经典算法题每日演练——第六题 协同推荐SlopeOne 算法

    原文:经典算法题每日演练--第六题 协同推荐SlopeOne 算法 相信大家对如下的Category都很熟悉,很多网站都有类似如下的功能,"商品推荐","猜你喜欢&quo ...

  8. 经典算法题每日演练——第二十二题 奇偶排序

    原文:经典算法题每日演练--第二十二题 奇偶排序 这个专题因为各种原因好久没有继续下去了,MM吧...你懂的,嘿嘿,不过还得继续写下去,好长时间不写,有些东西有点生疏了, 这篇就从简单一点的一个&qu ...

  9. 经典算法题每日演练——第十题 树状数组

    原文:经典算法题每日演练--第十题 树状数组 有一种数据结构是神奇的,神秘的,它展现了位运算与数组结合的神奇魅力,太牛逼的,它就是树状数组,这种数据结构不是神人是发现不了的. 一:概序 假如我现在有个 ...

最新文章

  1. 如何构建一个安全的人工智能世界?
  2. 浅析ajax原理与用法
  3. sdn和nfv的区别—Vecloud微云
  4. C语言标准数学函数库math.h之常用函数介绍
  5. IBM-X3650 6核处理器安装sql server 2005报错解决方法
  6. 松哥整理了 15 道 Spring Boot 高频面试题,看完当面霸
  7. Airflow 中文文档:API 参考
  8. 4周第4次课 压缩打包介绍 gzip bzip2 xz压缩工具
  9. 在一个字符串中找到第一个只出现一次的字符, 并返回它的位置
  10. VC6.0+XT库+OPENCV1.0调试笔记
  11. 日常工具搬运——python逐行写入txt文件
  12. Java的第20年:Java和我的故事
  13. [混迹IT职场系列]一、转正的那些事儿
  14. Google earth engine(GEE)——LANDSAT8统计不同点的DN值
  15. 撒大飒飒撒大声地撒萨达
  16. 象棋( Xiangqi, ACM/ICPC Fuzhou 2011, UVa1589)
  17. HDU4609 3-idiots fft
  18. 未群发消息接腾讯服务器吗,腾讯企点如何群发消息 腾讯企点群发消息方法教程...
  19. 从程序员到项目经理(25):对绩效考核的吐槽
  20. 2017年美国计算机科学,2017年U.S.News美国大学研究生计算机科学专业排名TOP10

热门文章

  1. linux 静态链接 mysql glibc 库的悲催过程
  2. 数据分析系列章节(一):初始数学之美
  3. nexus 6p刷入kali移动渗透测试平台
  4. 安卓模拟器报错:Error while waiting for device: The emulator process for AVD Nexus_6P_API_30 has terminated.
  5. 学设计的有必要考二级计算机吗,计算机二级有考的必要吗
  6. cas操作 java 缺点_CAS的缺点
  7. C# Pen绘制虚线(System.Drawing.Pen与System.Windows.Media.Pen)
  8. 一线城市java人才前景_2020年5大一线城市Java薪资水平汇总,你还差多少呢?
  9. esp8266局域网连接控制电机运动
  10. kafka消息删除机制