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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xfbyxq 中级黑马   /  2016-7-24 20:49  /  284 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

任意数都可以分解成由n个质数相乘
分解方法

1 先判定指定的数n是不是质数(质数不能分解)是质数就直接返回
2 是合数就先和最小的质数%运算  如果能被整除  就把商赋值给n
3 如果不能被整除就把最小的那个质数++
重复1-3步骤

Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int k=2;//最小质数
        System.out.print(n+"=");
        while(true){
            if(k==n){//先判定指定的数n是不是质数(质数不能分解)是质数就直接返回
                System.out.print(k);
                break;
            }else if(n%k==0){
                System.out.print(k+"*");
                n=n/k;//是合数就先和最小的质数%运算  如果能被整除  就把商赋值给n
            }else{
                k++;//如果不能被整除就把最小的那个质数++
            }
        }

0 个回复

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