黑马程序员技术交流社区

标题: 面试题——分解质因数 方法待更新 [打印本页]

作者: 公输子    时间: 2015-9-1 22:24
标题: 面试题——分解质因数 方法待更新

/*
     分析:首先分解质因数从2开始,能整除的话
     将数值除到不能被2整除为止。每次输出除数并重新赋值被除数接着2增加
     因为2已经除的不能除 了所以4不会被考虑到。

     1实现:
     for循环除数从2开始自增
     能被整除执行num/=i;重新赋值
     防止还能继续被2整除,用while 循环
     */     for(int i=2;i<num;i++)
          {
               //循环能否被一个数重复整除
               while(num%i==0&&num!=i)
               {
               //重新赋值需要继续计算
                    num/=i;
               System.out.print(i+"*");
               }//END WHILE
          }//END FOR
          //输出不能整除的最后一位
          System.out.println(num);

/*
     分析:首先分解质因数从2开始,能整除的话
     将数值除到不能被2整除为止。每次输出除数并重新赋值被除数接着2增加
     因为2已经除的不能除 了所以4不会被考虑到。

    2实现:
     for循环除数从2开始自增

     判断能不能整除
     能被整除执行num/=i;重新赋值
     防止还能继续被2整除,因为for循环里面有自增。
     所以for循环末尾要自减
     */   

for(int i=2;i<num;i++)
{
          if(num%i==0)
          {
System.out.print(i+"*");
num/=i;
}
i--;
}
  //输出不能整除的最后一位
System.out.println(num);






作者: 别弄那些没的    时间: 2015-9-1 22:54
顶                        




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