package jiChu;import java.util.Scanner;/**问题描述求出区间[a,b]中所有整数的质因数分解。 输入格式 输入两个整数a,b。输出格式每行输出一个数的分解,形如k=a1*a2*a3...(a1<=a2<=a3...,k也是从小到大的)(具体可看样例) 样例输入3 10 样例输出 3=34=2*2 5=5 6=2*3 7=7 8=2*2*2 9=3*3 10=2*5 提示 先筛出所有素数,然后再分解。数据规模和约定2<=a<=b<=10000* * @author Vivinia** 1月28日*/public class Distrut {public static void main(String[] args) {Scanner input = new Scanner(System.in);int a = input.nextInt();int b = input.nextInt();input.close();String str;for (int i = a; i <= b; i++) {str = "";int temp=i;for (int j = 2; j <= temp; j++) { //质数,从2开始一直遍历,然后3,5while (temp != j) { if (temp % j == 0) {str += j + "*";temp = temp / j;} elsebreak; //不整除,j需要变化}}str += temp; //最后剩下的质数System.out.println(i+"="+str);}}}
1.最重要的逻辑是,除数从2开始,而且不是只除一次,必须除到商不为整数了,才可以除数改变;
2.最后会剩余一个余数,是最后的一个质数,必须要加上;