A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhangquan 中级黑马   /  2016-6-12 17:53  /  394 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.util.ArrayList;
import java.util.Scanner;

public class Test_04 {
        /*
         * 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
         * 程序分析:分解质因数就是把这个正整数分解为质数的积.
         *                 1.输入一个正整数
         *                 2.调用方法,使用for循环得到该正整数以下的质数.
         *                 3.用if语句判断那些质数能被整除并输出.
         */
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个正整数");
                int x = sc.nextInt();
                fenjie(x);                //调用方法求质数
        }

        private static void fenjie(int x) {
                ArrayList<Integer> list = new ArrayList<Integer>();
                 //求质数,并存入集合中
                for(int i = 1;i<=x;i++){
                        if(i == 2){
                                list.add(i);
                        }
                        a:for(int j = 2;j<i;j++){
                                if(i%j==0){
                                        break a;
                                }if(j==i-1){
                                        list.add(i);
                                }
                        }
                }
                //查看遍历集合
                for (Integer integer : list) {
                        System.out.println(integer);
                }
                System.out.println("===============");
                //调用print方法求质因数
                print(list,x);
        }

        private static void print(ArrayList<Integer> list,int x) {
                a:for (Integer in : list) {
                       
                        if(x%in == 0){
                                int m = x/in;
                                System.out.println(in);
                                if(m!=1){
                                        print(list,m);
                                        break a;
                                }
                        }
                }
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马