分析:
方法一,利用循环,将数进行分解,直到变为1。
方法二,可以根据公式f(n) = k * f(n / k)建立递归,采用记忆化递归减少重复计算。
Java代码实现:
方法一:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int b = scanner.nextInt();
int i,j,k;
for(i = a; i <= b; i++) { //从a到b,for循环用来遍历每一个数
j = 1;
k = i; //将值赋给k,不改变i
System.out.print(k + "=");
while (k != 1) { //while循环用来求因子
j++;
if (k % j == 0) { //找到一个因子,就将原数除以这个因子。再次循环,直到k为1
k /= j;
if (k == 1) {
System.out.print(j); //最后没有乘号
} else {
System.out.p