开发者社区> 问答> 正文

输入 90,打印出 90=2*3*3*5

输入 90,打印出 90=233*5

展开
收起
珍宝珠 2020-02-13 18:17:24 1790 0
1 条回答
写回答
取消 提交回答
  • 对 n 进行分解质因数,应先找到一个最小的质数 k,然后按下述步骤完成:

    (1)如果这个质数恰等于 n,则说明分解质因数的过程已经结束,打印出即可。

    (2)如果 n<>k,但 n 能被 k 整除,则应打印出 k 的值,并用 n 除以 k 的商,作为新的正整数 n,重复执行第一 步。

    (3)如果 n 不能被 k 整除,则用 k+1 作为 k 的值,重复执行第一步。

    package cskaoyan;
     
    import org.junit.Test;
     
    public class cskaoyan4 {
        @Test
        public void zhiYinShu() {
            java.util.Scanner in = new java.util.Scanner(System.in);
            int number = in.nextInt();
            int prime = 2;
            in.close();
     
            if (number < 2) {
                return;
            } else {
                System.out.print(number + "=");
     
                while (number != prime) {
                    if (number % prime == 0) {
                        System.out.print(prime + "*");
                        number = number / prime;
                    } else {
                        prime = nextPrime(prime);
                    }
                }
     
                System.out.print(number);
            }
        }
     
        public int nextPrime(int number) {
            number = number + 1;
     
            while (true) {
                if (isPrime(number)) {
                    return number;
                } else {
                    number = number + 1;
                }
            }
        }
     
        public boolean isPrime(int number) {
            boolean flag = true;
     
            if (number < 2) {
                flag = false;
            } else if (number == 2) {
                flag = true;
            } else {
                for (int i = 2; i <= Math.sqrt(number); i++) {
                    if (number % i == 0) {
                        flag = false;
                        break;
                    }
                }
            }
     
            return flag;
        }
    }
    
    2020-02-13 18:18:20
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载