把任意给出的正整数分解质因数,
比如90,最后输出 90 = 2*3*3*5这个输出想了很多方法不得其解,各位高手有什么好方法?

解决方案 »

  1.   

      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;
            }
          }
        }
      }
      

  2.   

    我帮你写了个,应该是这样的,用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);  
             } 
        }
     }