def read_data(): N = int(input()) C, V = map(int, input().split()) return N, C, V def solve(N, C, V): dp = [float('inf')] * (1 + N) dpN = float('inf') dp[0] = 0 dp[1] = C for k in range(1, N): cost = dp[k] + C for m in range(2 * k, N, k): cost += V if dp[m] > cost: dp[m] = cost dpN = min(dpN, cost + V - C) return min(dpN, dp[N]) N, C, V = read_data() print(solve(N, C, V))