基础练习 分解质因数
时间限制:1.0s 内存限制:512.0MB
问题描述 求出区间[a,b]中所有整数的质因数分解。输入格式 输入两个整数a,b。输出格式 每行输出一个数的分解,形如k=a1*a2*a3...(a1<=a2<=a3...,k也是从小到大的)(具体可看样例)样例输入3 10样例输出3=3
4=2*2
5=5
6=2*3
7=7
8=2*2*2
9=3*3
10=2*5提示 先筛出所有素数,然后再分解。数据规模和约定 2<=a<=b<=10000
public class _16_分解质因数 {
public static void main(String[] args) {
Scanner inpScanner = new Scanner(System.in);
Scanner inpScanner2 = new Scanner(System.in);
Integer start = inpScanner.nextInt();
Integer end = inpScanner2.nextInt();
ArrayList<Integer> list = new ArrayList<Integer>();
ArrayList<Integer> list2 = new ArrayList<Integer>();
for (int i = start; i < end; i++) {
list.add(i);
}
for (Integer integer : list) {
boolean flag = true;
for (int i = 2; i <=(int) Math.sqrt(integer); i++) {
if (integer % i == 0) {
flag = false;
}
}
if (!flag) {
list2.add(integer);
}
}
for (Integer integer : list2) {
System.out.print(integer + "=");
for (int i = 2; i <= integer; i++) {
while (integer % i == 0 && integer != i) {
integer = integer / i;
System.out.print(i + "*");
}
if (integer == i) {
System.out.println(i);
}
}
}
}
}