- 思路
通过画图找规律,可得出素数只能是n次,偶数就是它的二分之一时加二,基数就是它的公约数加上公约数变成它的次数
int minSteps(int n){
if(n==1)
return 0;
int dp[n+1];
dp[1] = 0;
dp[2] = 2;
for(int i=3; i<=n; i++){
dp[i] = i;
if(i%2==0)
dp[i] = (dp[i/2]+2);
else{
for(int j=2; j<i; j++){
if(i%j==0){
if(dp[i]>(dp[j]+i/j))
dp[i] = dp[j]+i/j;
}
}
}
}
return dp[n];
}