将一个正整数分解质因数最简易明白的算法--java编写

来源:互联网 发布:ims 层次数据库 编辑:程序博客网 时间:2024/06/06 19:53
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 blockSystem.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;}}

0 0
原创粉丝点击