黑马程序员技术交流社区

标题: 将正整数分解质因数要注意的地方 [打印本页]

作者: 黑马嗨嗨嗨    时间: 2016-12-1 18:44
标题: 将正整数分解质因数要注意的地方
今天刚做这道题,从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, 下载次数: 21)

QQ截图20161201184410.png





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2