import java.awt.List;
import java.util.ArrayList;
import java.util.Scanner;
/**
* 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
*
*/
public class 分解质因数{
private static ArrayList<Integer> list=new ArrayList<Integer>();//存储质数
public static void main(String args[]){
try {
int in;
Scanner input = new Scanner(System.in);
in=input.nextInt();
if(in>2){
method(in);//输入90,用method方法分解
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}}else {
System.out.println("请输出大于1的正整数");
}
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("请输出大于1的正整数");
}
}
public static void method(int x){
if(!isZhiShu(x)){//判断 如果不是指数继续分解,不是的话直接结束
for(int i=2;i<=x/2;i++)
{
if(x%i==0){
int f=x/i;
list.add(i);
method(f);//使用递归
break;
}
}}else {
list.add(x);
}
}
/**
* 将判断是否为质数
*
*/
public static boolean isZhiShu(int f){
for(int i=2;i<=f/2;i++){
if(f%i==0){
return false;
}
}
return true;
}
}
将一个正整数分解质因数最简易明白的算法--java编写
猜你喜欢
转载自blog.csdn.net/MR_zbh/article/details/53007083
今日推荐
周排行