java练习题004
来源:互联网 发布:欧陆风云4 dlc mac 编辑:程序博客网 时间:2024/06/07 02:44
这个暑假一直在进行理论学习,很久没更新博客了,都几乎忘了怎么用Markdown
今天学理论烦躁时写了几道java的小题。下面这道题我觉得挺有趣的,放出来大家一起看看:
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
import java.util.*;public class lianxi04 { public static void main(String args[]) { System.out.println("请输入一个正整数:"); Scanner s=new Scanner(System.in); int n=s.nextInt(); int k=2; System.out.println(n+"="); while(k<=n) { if(n==k) { System.out.println(k); break; } else if(n%k==0) { System.out.print(k+"*"); n=n/k; } else k++; } }}
这道题乍一看会感觉比较麻烦,因为既要考虑分解,还要是质数(素数)。
我刚拿到手的想法是,这道题肯定得有一个方法用来判断一个数是不是素数,然后将这个方法拿到main方法中去用。这样做是能做出来的,但是未免有些过于麻烦了。
我又想了一种方法,那就是:
直接从2一个一个的判断,假如2不是它的质因数,那么所有能被2整除的数当然也不是它的因数,就不用考虑是不是质数了;接着3,假如3不是它的质因数,那么所有能被3整除的数当然也不是它的因数,就不用考虑是不是质数了……以此类推,后面的都可以这样考虑。下面是这个方法的算法步骤:
- 如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可;
- 如果n != k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步;
- 如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
阅读全文
0 0
- java练习题004
- java 练习题
- JAVA练习题
- java练习题
- java练习题
- java练习题
- java练习题
- java练习题
- java练习题
- java练习题
- java练习题
- Java练习题
- java练习题
- java练习题
- java练习题
- JAVA练习题
- Java练习题
- java 练习题
- ThinkPHP读取本地文件信息(包括中文路径)
- 热烈庆祝中国梦•我和我的祖国线上美术作品评选大赛隆重举行
- python 正则表达式
- MongoDB在Ubuntu上离线安装及可视化工具robomongo安装
- hdoj 2120 Ice_cream's world I 【并查集判断成环数】
- java练习题004
- GreenPlum学习(二)
- 灰色预测模型
- <C语言>printf的对齐输出
- 汪国新委员、郑桂兰董事长出席“同根同梦·2017全球华人春晚发布会”
- 数字三角形III
- 汪国新委员、郑桂兰董事长出席“同根同梦·2017全球华人春晚发布会”
- java spi示例
- Coursera机器学习 Week10 笔记