整数因子分解问题-递归与dp

Posted nuist__NJUPT

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了整数因子分解问题-递归与dp相关的知识,希望对你有一定的参考价值。


方法1:递归

import java.util.Scanner;

public class IntegerFactor {
    static int total = 0;
    public static void solve(int n){
        if(n == 1){
            total ++ ;
        }else{
            for(int i=2; i<=n; i++){
                if(n % i == 0){ //对所有n的因子进行递归搜索
                    solve(n/i) ;
                }
            }
        }
    }
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in) ;
        int n = input.nextInt() ;
        solve(n) ;
        System.out.println(total);
    }
}

方法2:动态规划

import java.util.Scanner;

public class IntegerFactor1 {
    /**方程式:dp[i] = dp[j1] + dp[j2] + ...
     * 其中j1,j2...为i的因子
     */
    public static int f(int n, int [] dp){
        for(int i=1; i<=n; i++){
            if(i == 1){
                dp[i] = 1 ;
            }else {
                for (int j = 1; j < i; j++) {
                    if (i % j == 0) {
                        dp[i] += dp[j];
                    }
                }
            }
        }
        return dp[n] ;
    }
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in) ;
        int n = input.nextInt() ;
        int [] dp = new int [n+1] ;
        System.out.println(f(n, dp));
    }
}

以上是关于整数因子分解问题-递归与dp的主要内容,如果未能解决你的问题,请参考以下文章

左因子分解与左递归之间的差异

[CQOI2016]伪光滑数

算法---分解质因数

算法---分解质因数

Uva1635 二项式递推+质因子分解+整数因子分解

数论——素数筛选法与整数的素因子分解