五十道编程小题目 --- 04 正整数分解质因数 java
2016-08-24 19:43
232 查看
【程序4】
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
代码:public class FenJieZhiYinShu {
public static void fenJieZhiYinShu(int n){
StringBuilder sb = new StringBuilder();
sb.append(n + "=");
for(int i=2; i<=n ; i++){
if( n%i == 0){
sb.append( i + "*");
n = n/i ;
i--;
}
}
String str = sb.substring(0, sb.length()-1);
System.out.println(str);
}
public static void main(String[] args) {
fenJieZhiYinShu(90);
fenJieZhiYinShu(70);
}
}
输出结果
90=2*3*3*5
70=2*5*7
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
代码:public class FenJieZhiYinShu {
public static void fenJieZhiYinShu(int n){
StringBuilder sb = new StringBuilder();
sb.append(n + "=");
for(int i=2; i<=n ; i++){
if( n%i == 0){
sb.append( i + "*");
n = n/i ;
i--;
}
}
String str = sb.substring(0, sb.length()-1);
System.out.println(str);
}
public static void main(String[] args) {
fenJieZhiYinShu(90);
fenJieZhiYinShu(70);
}
}
输出结果
90=2*3*3*5
70=2*5*7
相关文章推荐
- 五十道编程小题目 --- 06 最大公约数和最小公倍数 java
- 五十道编程小题目 --- 11 排列与组合(阶乘) java
- 五十道编程小题目 --- 28 八大排序算法 java 之 04堆排序
- 五十道编程小题目 --- 37 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子 java
- 五十道编程小题目 --- 28 八大排序算法 java 之 07归并排序
- 五十道编程小题目 --- 07 统计出其中英文字母、空格、数字和其它字符的个数 java
- 五十道编程小题目 --- 25 回文数 java
- 五十道编程小题目 --- 28 八大排序算法 java 之 06快速排序
- 五十道编程小题目 --- 28 八大排序算法 java 之 01直接插入排序
- 五十道编程小题目 --- 33 杨辉三角 java
- 五十道编程小题目 --- 09 完数 java
- 五十道编程小题目 --- 20 java
- 五十道编程小题目 --- 13 java
- 五十道编程小题目 --- 28 八大排序算法 java 之 05冒泡排序
- 五十道编程小题目 --- 02 找素数(质数)java
- 五十道编程小题目 --- 10 反弹的小球 java
- 五十道编程小题目 --- 17 猴子吃桃子问题 java
- 五十道编程小题目 --- 19 打印菱形 java
- 五十道编程小题目 --- 29 java
- 五十道编程小题目 --- 30 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 java