一、题目
将一个正整数分解质因数
二、题思路
1.手动输入一个数
2. 获取一定范围的质数
3.分解质因数
三、代码实现
package basic.example;
import com.google.common.collect.Lists;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* Description: 分解质因数
*
* @author Eric
* @date 2022/3/25
* @version 1.0
*
* <pre>
* 修改记录:
* 修改后版本 修改人 修改日期 修改内容
* 2022/3/25 Eric 2022/3/25 Create
* </pre>
*
*/
public class BasicFor04 {
public static void main(String[] args) {
//1.输入一个正整数
Scanner scanner = new Scanner(System.in);
System.out.println("请输入正整数,按回车结束:");
int targetNum = scanner.nextInt();
//2.获取0~100质数
List<Integer> list = Lists.newArrayList();
list.add(2);
for (int i = 3; i < 100; i++) {
Boolean flag = true;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
flag = false;
break;
}
}
if (flag) list.add(i);
}
//3.分解公因数
System.out.println("分解质因数如下:");
partition(targetNum, list);
}
/**
* 分解质因数
*
* @param targetNum
* @param list
*/
public static void partition(Integer targetNum, List<Integer> list) {
for (Integer item : list) {
if (targetNum % item == 0) { // 是否能整除
System.out.println(item);
Integer part = targetNum / item;
if (part != 0) //当不能被除尽,取商继续递归
partition(part, list);
break;
}
}
}
}
四、结果截图

本文介绍了一种用Java编程语言实现正整数质因数分解的方法。首先,用户输入一个正整数,然后程序通过生成0到100之间的质数列表,接着对输入的数进行质因数分解。代码中定义了一个`partition`方法用于递归地分解质因数,并打印结果。这是一个基础的算法实现,适用于初学者理解质因数分解的原理。
467

被折叠的 条评论
为什么被折叠?



