Project Euler 183: Maximum product of parts
Problem Description
Let N be a positive integer and let N be split into k equal parts, r = N/k, so that N = r + r + … + r.
Let P be the product of these parts, P = r × r × … × r = rk.
For example, if 11 is split into five equal parts, 11 = 2.2 + 2.2 + 2.2 + 2.2 + 2.2, then P = 2.25 = 51.53632.
Let M(N) = Pmax for a given value of N.
It turns out that the maximum for N = 11 is found by splitting eleven into four equal parts which leads to Pmax = (11/4)4; that is, M(11) = 14641/256 = 57.19140625, which is a terminating decimal.
However, for N = 8 the maximum is achieved by splitting it into three equal parts, so M(8) = 512/27, which is a non-terminating decimal.
Let D(N) = N if M(N) is a non-terminating decimal and D(N) = -N if M(N) is a terminating decimal.
For example, ΣD(N) for 5 ≤ N ≤ 100 is 2438.
Find ΣD(N) for 5 ≤ N ≤ 10000.
Project Euler 183 Solution
Runs < 0.010 seconds in Python 2.7.Use this link to get the Project Euler 183 Solution Python 2.7 source.
Afterthoughts
- The value of k that maximizes P as M(N) (or Pmax) can be calculated as N/e. Where e is 2.718281828, the base of the natural logarithm.
- As for determining D(N): A fraction will terminate if and only if the denominator, k, has for prime divisors only 2 and 5, that is, if and only if the denominator has the form 2n5m for some exponents n ≥ 0 and m ≥ 0. The number of decimal places until it terminates is the larger of n and m.
Discussion
No comments yet.