使用因数分解的方法

如果这个数是素数那么就返回这个数,如果可以分解,就分解求。
class Solution {
    public int minSteps(int n) {
        int[] dp = new int[n+1];  //dp[i]表示打印i个的最少操作
        
        dp[1] = 0;
        for(int i=2;i<=n;i++){
            for(int j=2;j<=Math.sqrt(i);j++){
                if(i%j==0){
                    dp[i] = dp[j] + dp[i/j];
                }
            }
            if(dp[i]==0){
                dp[i] = i;
            }
        }
        return dp[n];
    }
}