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

今天刚做这道题,从5点多做到6:30,就一直想错在哪了。。。。。。后面才发现算到最后 num 和 x是要相等,相除得1的
/*
将一个正整数分解质因数。例如:输入 90,打印出 90=2*3*3*5。
思路:1、输入一个数num,如果num%x==0(x是从2到num),记录第一次的x。
                用break跳出,再调用函数
          2、再用num记录num除x的商,如果num%x==0(x是从2到num),
                再记录第一次的x。
*/
class Test6
{
        public static void main(String[] args)
        {
                int num = 90;
                System.out.print(num+"的分解质因数有:");
                yinshu(num);
        }
        public static void yinshu(int num)
        {
                        for (int x=2;x<=num-1 ;x++ )//这个地方是num 和 x是要相等的。。。要不然会少算一个质因数。。
                        {
                                if (num%x==0)
                                {
                                        num=num/x;
                                        System.out.print(x+" ");
                                        yinshu(num);
                                        break;
                                }
                       
                        }
        }
}

QQ截图20161201184410.png (3.34 KB, 下载次数: 19)

QQ截图20161201184410.png

0 个回复

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