每日经典算法题(四) 分解质因数
每日经典算法题(四) 分解质因数
分解质因数: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 打卡成功!
每日经典算法题(四) 分解质因数相关推荐
- 每日经典算法题(十六) 九九乘法表
每日经典算法题(十六) 九九乘法表 九九乘法表:Multiplication Table 99 题目 输出 9 * 9 口诀 程序分析 分行与列考虑,共9行9列,i 控制行,j 控制列 思路 非常经典 ...
- 每日经典算法题(十三) 逆推算法(平方根相关)
每日经典算法题(十三) 逆推算法(平方根相关) 平方根:Square Root 题目 有一个整数,它加上 100 后是一个 完全平方数 ,再加上 168 又是一个 完全平方数 ,请问该数是多少? 程序 ...
- python代码基础题-python每日经典算法题5(基础题)+1(中难题)
现在,越来越多的公司面试以及考验面试对算法要求都提高了一个层次,从现在,我讲每日抽出时间进行5+1算法题讲解,5是指基础题,1是指1道中等偏难.希望能够让大家熟练掌握python的语法结构已经一些高级 ...
- python每日经典算法题5(基础题)+1(中难题)
现在,越来越多的公司面试以及考验面试对算法要求都提高了一个层次,从现在,我讲每日抽出时间进行5+1算法题讲解,5是指基础题,1是指1道中等偏难.希望能够让大家熟练掌握python的语法结构已经一些高级 ...
- python每日经典算法题5(基础题)+1(较难题)
一:基础算法题5道 1.阿姆斯特朗数 如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数.判断用户输入的数字是否为阿姆斯特朗数. (1)题目分析:这里要先得到该数是多少位的,然后再把 ...
- 经典算法题每日演练——第十九题 双端队列
经典算法题每日演练--第十九题 双端队列 原文:经典算法题每日演练--第十九题 双端队列 话说大学的时候老师说妹子比工作重要~,工作可以再换,妹子这个...所以...这两个月也就一直忙着Fall in ...
- 经典算法题每日演练——第六题 协同推荐SlopeOne 算法
原文:经典算法题每日演练--第六题 协同推荐SlopeOne 算法 相信大家对如下的Category都很熟悉,很多网站都有类似如下的功能,"商品推荐","猜你喜欢&quo ...
- 经典算法题每日演练——第二十二题 奇偶排序
原文:经典算法题每日演练--第二十二题 奇偶排序 这个专题因为各种原因好久没有继续下去了,MM吧...你懂的,嘿嘿,不过还得继续写下去,好长时间不写,有些东西有点生疏了, 这篇就从简单一点的一个&qu ...
- 经典算法题每日演练——第十题 树状数组
原文:经典算法题每日演练--第十题 树状数组 有一种数据结构是神奇的,神秘的,它展现了位运算与数组结合的神奇魅力,太牛逼的,它就是树状数组,这种数据结构不是神人是发现不了的. 一:概序 假如我现在有个 ...
最新文章
- 如何构建一个安全的人工智能世界?
- 浅析ajax原理与用法
- sdn和nfv的区别—Vecloud微云
- C语言标准数学函数库math.h之常用函数介绍
- IBM-X3650 6核处理器安装sql server 2005报错解决方法
- 松哥整理了 15 道 Spring Boot 高频面试题,看完当面霸
- Airflow 中文文档:API 参考
- 4周第4次课 压缩打包介绍 gzip bzip2 xz压缩工具
- 在一个字符串中找到第一个只出现一次的字符, 并返回它的位置
- VC6.0+XT库+OPENCV1.0调试笔记
- 日常工具搬运——python逐行写入txt文件
- Java的第20年:Java和我的故事
- [混迹IT职场系列]一、转正的那些事儿
- Google earth engine(GEE)——LANDSAT8统计不同点的DN值
- 撒大飒飒撒大声地撒萨达
- 象棋( Xiangqi, ACM/ICPC Fuzhou 2011, UVa1589)
- HDU4609 3-idiots fft
- 未群发消息接腾讯服务器吗,腾讯企点如何群发消息 腾讯企点群发消息方法教程...
- 从程序员到项目经理(25):对绩效考核的吐槽
- 2017年美国计算机科学,2017年U.S.News美国大学研究生计算机科学专业排名TOP10
热门文章
- linux 静态链接 mysql glibc 库的悲催过程
- 数据分析系列章节(一):初始数学之美
- nexus 6p刷入kali移动渗透测试平台
- 安卓模拟器报错:Error while waiting for device: The emulator process for AVD Nexus_6P_API_30 has terminated.
- 学设计的有必要考二级计算机吗,计算机二级有考的必要吗
- cas操作 java 缺点_CAS的缺点
- C# Pen绘制虚线(System.Drawing.Pen与System.Windows.Media.Pen)
- 一线城市java人才前景_2020年5大一线城市Java薪资水平汇总,你还差多少呢?
- esp8266局域网连接控制电机运动
- kafka消息删除机制