日期:2014-05-20  浏览次数:20778 次

很基础 但很麻烦的问题!
把任意给出的正整数分解质因数,
比如90,最后输出 90 = 2*3*3*5

这个输出想了很多方法不得其解,各位高手有什么好方法?

------解决方案--------------------
Java code
  static void zhi(int num) {
    if (num == 1) {
      System.out.print("1 ");
    } else {
      out: for (int i = 2; i <= num; i++) {
        if (num % i == 0) {
          System.out.print(i);
          num = num / i;
          if (num != 1) {
            System.out.print("* ");
            zhi(num);
          }
          break out;
        }
      }
    }
  }

------解决方案--------------------
我帮你写了个,应该是这样的,用for循环进行递归调用:
 public static void math(int init1,int init2,int n,int k,int sum){
int i; 
if(k>n){ /*如果k比n还大 则不能分*/
to2.getOption();
}
else if(n<=6||n>200||k<2||k>6){ /*满足条件*/
to2.getOption(); 
}

else{
if(init1>k) {if(n==sum){
MyJcomponent.count++; 
}
return; 

for(i=init2;i <=n;i++) /*在for()循环里进行递归调用*/

math(init1+1,i,n,k,sum+i);

}
}