Java正整数分解质因数

leetcode-2

Java正整数分解质因数

1、题目:

  • 将一个正整数分解质因数。例如:输入 90,打印出 90=233*5。

2、题目解析:

  • 先将数m从2开始整除,如果能被2整除,就将m等于m除以2–> m = m % 2;
  • 然后将m在从2开始整除,如果不成立,从就从3开始,以此类推。
    //采用while循环进行循环分解
    while(nums % 2 == 0){
        //这个if语句使用输出 2*3*3*5 格式
        if (nums == i) { // 当i是最后一个数字时,就无需输出 *
            System.out.print(i);
        }else {
            //我们这里采用格式打印
            System.out.printf("%d*",i);
        }
        //nums能够被2整除,所以将nums等于/2的那个数值, 利用的是辗转相除法
        nums = nums / 2;
    }
  • 这只是除数为2的循环,那3,4,5,6, 所以这里就需要外层for循环,进行除数的不断增加
    //外层采用for,判断条件是 i <= nums 等于是因为,被除数可以刚好为i
    for (int i = 2; i <= nums; i++) {
        //while(nums % 2 == 0) 循环
    }

3、代码

     Scanner sc = new Scanner(System.in);
            System.out.print("请输入一个正整数:");
            int nums = sc.nextInt();
    
            for (int i = 2; i <= nums; i++) {
                while (nums % i == 0) {
                    if (nums == i ) {
                        System.out.print(i);
                    }else {
                        System.out.printf("%d*",i);
                    }
                    nums = nums / i;
                }
            }

4、总结

  • 首先要找出规律,如何分解质因数,先判断一个数如何除,脑子里面有思路,求出while循环,其次再进行格式打印

A journey of a thousand miles begins with a single step

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值