整数分解

 顺手写了下 整数因子分解整数质因数分解

1.求整数因子分解有多少种?

2.输出整数的质因数分解

  
  
  
  
  1. public class Decomposition { 
  2.      
  3.     public static void main(String[] args){ 
  4.         int a = 12
  5.         int count = decomp(a); 
  6.         System.out.println(count); 
  7.         primeDecomp(72); 
  8.     } 
  9.  
  10.     /** 
  11.      * 整数因子分解有多少种不同的分解方法? 
  12.      * 如12=12=6*2=4*3=3*4=3*2*2=2*6=2*3*2=2*2*3 共8种 
  13.      * 可先确定一个因子i,则种数f(n) = sum{f(n/i}|i为n的因数} 
  14.      * @param n 
  15.      * @return 
  16.      */ 
  17.     private static int decomp(int n) { 
  18.         if(n==1
  19.             return 1
  20.         int result=0
  21.         for(int i=2;i<=n;i++) 
  22.             if(n%i==0
  23.                 result+=decomp(n/i); 
  24.         return result; 
  25.          
  26.     } 
  27.      
  28.     /** 
  29.      * 整数质因数分解 
  30.      * 输出72=2^3 * 3^2 = 2*2*2*3*3 
  31.      */ 
  32.     private static void primeDecomp(int n){ 
  33.         while(n%2==0){ 
  34.             n = n/2
  35.             System.out.print("2 "); 
  36.         } 
  37.         int i = 3
  38.         while(i<=n){ 
  39.             if(isPrime(i)) 
  40.             while (n % i == 0) { 
  41.                 System.out.print(i + " "); 
  42.                 n = n/i; 
  43.             } 
  44.             i+=2
  45.         } 
  46.     } 
  47.      
  48.     public static boolean isPrime(int n) { 
  49.         for (int i = 2; i <= Math.sqrt(n); i++) { 
  50.             if (n % i == 0) { 
  51.                 return false
  52.             } 
  53.         } 
  54.         return true
  55.     } 

 

你可能感兴趣的:(职场,整数,休闲,质因数分解,因子分解)