Pagini recente » Cod sursa (job #2946528) | Cod sursa (job #1350134) | Cod sursa (job #1548387) | Cod sursa (job #2342457) | Cod sursa (job #2731266)
#include <iostream>
#define MAX 1000002
using namespace std;
int n,dp[MAX];
int main()
{
cin >> n;
dp[1] = 0;
/// dp[i] = minim(1+dp[i-1], 1+dp[i/2] este div cu 2, 1+dp[i/3] este div cu 3)
for(int i = 2; i <= n; i++){
dp[i] = 1+dp[i-1];
if(i%2 == 0){
dp[i] = min(dp[i], 1+dp[i/2]);
}
if(i%3 == 0){
dp[i] = min(dp[i], 1+dp[i/3]);
}
}
cout << dp[n] << "\n";
return 0;
}