100以内的数分解问题
将一个数分解为他的质因数的乘积形式。
import java.util.ArrayList;
public class FenJie {
static int n = 100;
static void fenjie(int i,ArrayList sushu) { //非素数分解方法(递归)
for(int j = 2;j<=n;j++) {
if(sushu.contains(j))
if(i%j == 0) {
int s = i/j;
if(sushu.contains(s)) {
System.out.println( j + " * " + s);
break;
}
else {
System.out.print( j + " * ");
fenjie(s,sushu);
break;
}
}
}
}
public static void main(String[] args) {
ArrayList sushu = new ArrayList();
sushu.add(2);
for(int i = 3;i<=n;i++) {
int j = 2;
for(;j<=i/2;j++) {
if(i%j == 0)
break;
}
if(j > i/2)
sushu.add(i);
}
for(int i = 2;i<=n;i++) {
if(sushu.contains(i)) //如果是素数,则直接输出1*这个数
System.out.println(i + " = " + "1" + " * " + i);
else { //否则进行分解
System.out.print(i + " = ");
fenjie(i,sushu);
}
}
}
}
输出结果