**T**he #814 Le Monde math puzzle was to find 100 digits (between 1 and 10) such that their sum is equal to their product. Given the ten possible values of those digits, this is equivalent to finding integers a_{1},…,a_{10} such that

a_{1}+…+a_{10}=100

and

a_{1}+2a_{2}+…+10a_{10}=2^{a2}x….x10^{a10},

which reduces the number of unknowns from 100 to 10 (or even 9). Furthermore, the fact that the (first) sum of the a_{i}‘s is less than 100 implies that the (second) sum of the *ia*_{i}‘s is less than 1000, hence* i*^{ai} is less than 1000. This reduces the number of possible ten-uplets enough to allow for an enumeration, hence the following R code:

bounds=c(100,trunc(log(1000)/log(2:10)))
for (i2 in 0:bounds[2])
for (i3 in 0:bounds[3])
for (i4 in 0:bounds[4])
for (i5 in 0:bounds[5])
for (i6 in 0:bounds[6])
for (i7 in 0:bounds[7])
for (i8 in 0:bounds[8])
for (i9 in 0:bounds[9])
for (i10 in 0:bounds[10]){
A=c(i2,i3,i4,i5,i6,i7,i8,i9,i10)
if (sum(A)<101){
A=c(100-sum(A),A)
if (sum((1:10)*A)==prod((1:10)^A))
print(A)
}}

that produces two answers

[1] 97 0 0 2 0 0 1 0 0 0
[1] 95 2 3 0 0 0 0 0 0 0

i.e. either 97 1′s, 2 4′s and 1 7, or 95 1′s, 2 2′s and 3 3′s. I would actually love to see a coding solution that does not involve this pedestrian pile of “for”. And a mathematical solution based on Diophantine equations. Rather than the equally pedestrian solution given by Le Monde this weekend.

Filed under: Books, Kids, R Tagged: Diophantine equations, Le Monde, mathematical puzzle, R

*Related*

To

**leave a comment** for the author, please follow the link and comment on his blog:

** Xi'an's Og » R**.

R-bloggers.com offers

**daily e-mail updates** about

R news and

tutorials on topics such as: visualization (

ggplot2,

Boxplots,

maps,

animation), programming (

RStudio,

Sweave,

LaTeX,

SQL,

Eclipse,

git,

hadoop,

Web Scraping) statistics (

regression,

PCA,

time series,

trading) and more...

If you got this far, why not

__subscribe for updates__ from the site? Choose your flavor:

e-mail,

twitter,

RSS, or

facebook...