/reach

A program to express each the numbers between 0 and 199 inclusive as a mathematical expression using each of 1, 2, 3, 4, 5 exactly once.

Primary LanguageGoBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

reach

A program to express each the numbers between 0 and 199 inclusive as a mathematical expression using each of 1, 2, 3, 4, 5 exactly once.

When I was a kid, a friend of mine was in REACH which is a program for gifted and talented elementary school students. One of his activities from this program was writing each of the numbers from 1 to 100 as a mathematical expression using each of 1, 2, 3, 4, and 5 exactly once.

This is a program that does just that except this program does it for the numbers from 0 to 199. 178 is the first number for which this program cannot find a solution.

This program uses postfix notation rather than infix notation as it is easier to form postfix mathematical expressions rather than infix ones.

For example:

  • 1 2 + => 1 + 2
  • 3 4 + 2 * => (3 + 4) * 2
  • 3 4 2 + * => 3 * (4 + 2)

All the numbers from 0 up to 100 inclusive can be written in this way. 178 is the smallest number for which there is no known way to write it using

The output of the program is at the bottom:

From the output you can see that

  • 0 == 1 5 + 4 2 + - 3 * => ((1 + 5) - (4 + 2)) * 3
  • 1 == 1 5 + 2 + 4 3 + - => 1 + 5 + 2 - (4 + 3)

Notice that all these expressions use the numbers 1 through 5 exactly once.

As you can see 178 is the first number with no such expression.

0 [1 4 + 2 3 + - 5 *]
1 [1 2 + 5 + 3 4 + -]
2 [1 2 + 3 + 4 + 5 /]
3 [1 3 + 5 + 2 4 + -]
4 [1 2 + 4 + 5 + 3 /]
5 [1 2 + 3 + 4 + 5 -]
6 [1 2 + 4 + 5 - 3 *]
7 [1 2 + 3 + 5 + 4 -]
8 [2 4 + 5 + 3 - 1 *]
9 [1 2 + 4 + 5 + 3 -]
10 [1 2 + 3 + 4 - 5 *]
11 [1 3 + 4 + 5 + 2 -]
12 [1 2 + 5 + 4 - 3 *]
13 [2 3 + 4 + 5 + 1 -]
14 [2 3 + 4 + 5 + 1 *]
15 [1 2 + 3 + 4 + 5 +]
16 [1 4 + 5 + 2 3 * +]
17 [1 3 + 5 + 2 4 * +]
18 [1 3 + 5 + 4 2 - *]
19 [3 4 + 1 5 + 2 * +]
20 [1 2 + 4 + 3 - 5 *]
21 [1 3 + 4 + 2 * 5 +]
22 [3 4 + 5 + 1 - 2 *]
23 [1 4 + 5 + 2 * 3 +]
24 [1 4 + 5 + 2 - 3 *]
25 [1 3 + 5 + 4 - 2 ^]
26 [1 3 + 4 + 5 + 2 *]
27 [4 5 + 1 2 + / 3 ^]
28 [1 3 + 5 + 2 - 4 *]
29 [1 2 + 3 + 4 * 5 +]
30 [1 3 + 4 + 2 - 5 *]
31 [3 4 + 1 - 5 2 ^ +]
32 [1 2 + 3 + 4 - 5 ^]
33 [1 5 + 2 4 + * 3 -]
34 [1 2 + 3 + 5 * 4 +]
35 [1 2 + 5 + 4 * 3 +]
36 [1 2 + 4 + 5 + 3 *]
37 [4 5 + 3 - 2 ^ 1 +]
38 [1 2 + 4 + 5 * 3 +]
39 [1 5 + 2 4 + * 3 +]
40 [2 3 + 4 + 1 - 5 *]
41 [2 3 + 5 + 4 * 1 +]
42 [2 4 + 3 5 + 1 - *]
43 [3 4 + 1 5 + 2 ^ +]
44 [1 2 + 3 + 5 + 4 *]
45 [2 3 + 4 + 1 * 5 *]
46 [2 3 + 4 + 5 * 1 +]
47 [2 4 + 3 5 + * 1 -]
48 [2 5 + 3 4 + * 1 -]
49 [1 4 + 5 + 3 - 2 ^]
50 [1 2 + 3 + 4 + 5 *]
51 [1 2 + 4 * 5 + 3 *]
52 [1 3 + 2 * 5 + 4 *]
53 [3 5 + 1 - 2 ^ 4 +]
54 [1 2 + 3 + 4 5 + *]
55 [1 5 + 3 4 + 2 ^ +]
56 [1 2 + 4 + 3 5 + *]
57 [1 2 + 5 * 4 + 3 *]
58 [1 2 5 + - 4 3 ^ +]
59 [1 3 + 4 + 2 ^ 5 -]
60 [1 4 + 5 + 2 * 3 *]
61 [4 5 + 1 - 2 ^ 3 -]
62 [1 2 + 5 - 4 3 ^ +]
63 [2 5 + 4 1 - * 3 *]
64 [1 2 + 5 + 4 - 3 ^]
65 [3 5 + 4 2 - ^ 1 +]
66 [5 1 2 + - 4 3 ^ +]
67 [4 5 + 1 - 2 ^ 3 +]
68 [1 5 + 2 - 3 ^ 4 +]
69 [1 3 + 4 + 2 ^ 5 +]
70 [2 5 + 1 - 4 3 ^ +]
71 [3 4 + 2 1 5 + ^ +]
72 [1 3 + 5 + 2 * 4 *]
73 [1 4 + 3 * 5 * 2 -]
74 [1 5 + 3 * 4 * 2 +]
75 [2 4 + 1 - 3 * 5 *]
76 [1 5 + 2 * 4 3 ^ +]
77 [1 3 + 5 + 2 ^ 4 -]
78 [1 5 + 4 * 2 + 3 *]
79 [1 2 + 5 - 3 4 ^ +]
80 [1 3 + 4 + 2 * 5 *]
81 [1 3 + 5 + 4 2 - ^]
82 [1 3 + 4 * 5 * 2 +]
83 [1 5 + 3 - 4 ^ 2 +]
84 [1 5 + 3 4 + * 2 *]
85 [1 3 + 5 + 2 ^ 4 +]
86 [2 5 + 3 ^ 1 + 4 /]
87 [2 5 + 1 - 3 4 ^ +]
88 [1 3 + 5 * 2 + 4 *]
89 [1 2 + 5 + 3 4 ^ +]
90 [1 4 + 5 + 3 2 ^ *]
91 [2 5 + 3 4 * 1 + *]
92 [1 3 - 5 2 ^ + 4 *]
93 [2 4 + 5 * 1 + 3 *]
94 [2 4 ^ 3 + 5 * 1 -]
95 [2 4 + 3 * 1 + 5 *]
96 [1 2 + 5 + 3 * 4 *]
97 [1 4 + 5 + 2 ^ 3 -]
98 [1 3 - 5 2 ^ 4 * +]
99 [2 3 + 4 * 5 * 1 -]
100 [1 4 + 3 - 5 * 2 ^]
101 [2 3 + 4 * 5 * 1 +]
102 [3 1 - 5 2 ^ 4 * +]
103 [1 4 + 5 + 2 ^ 3 +]
104 [2 3 + 5 * 1 + 4 *]
105 [1 2 + 4 + 3 * 5 *]
106 [1 5 + 3 ^ 4 - 2 /]
107 [5 2 - 3 ^ 4 * 1 -]
108 [1 5 + 2 4 + * 3 *]
109 [5 2 - 3 ^ 4 * 1 +]
110 [1 5 + 3 ^ 4 + 2 /]
111 [1 4 + 2 5 ^ + 3 *]
112 [1 3 + 2 5 + * 4 *]
113 [1 2 + 3 ^ 4 * 5 +]
114 [1 5 + 2 4 ^ 3 + *]
115 [1 2 + 3 ^ 4 - 5 *]
116 [1 3 + 5 2 ^ + 4 *]
117 [1 5 + 2 ^ 3 4 ^ +]
118 [1 4 + 3 ^ 2 5 + -]
119 [3 1 4 + ^ 5 - 2 /]
120 [1 2 + 3 + 4 * 5 *]
121 [3 4 + 5 + 1 - 2 ^]
122 [2 1 4 + - 5 3 ^ +]
123 [2 3 4 + 1 * ^ 5 -]
124 [1 2 + 4 - 5 3 ^ +]
125 [1 4 + 2 3 + * 5 *]
126 [4 1 2 + - 5 3 ^ +]
127 [3 5 + 2 4 ^ * 1 -]
128 [2 1 4 + 5 + 3 - ^]
129 [3 5 + 2 4 ^ * 1 +]
130 [2 4 + 1 - 3 ^ 5 +]
131 [2 4 + 1 * 5 3 ^ +]
132 [1 2 + 4 + 5 3 ^ +]
133 [2 3 4 + 1 * ^ 5 +]
134 [1 5 + 2 3 4 + ^ +]
135 [1 4 + 2 - 3 ^ 5 *]
136 [3 5 + 2 4 ^ 1 + *]
137 [1 2 + 4 * 5 3 ^ +]
138 [3 4 * 2 ^ 1 5 + -]
139 [1 2 + 3 ^ 5 * 4 +]
140 [1 4 + 2 ^ 3 + 5 *]
141 [1 5 + 2 ^ 4 * 3 -]
142 [2 4 ^ 1 + 5 3 ^ +]
143 [3 4 + 5 + 2 ^ 1 -]
144 [3 4 + 5 + 1 * 2 ^]
145 [3 4 + 5 + 2 ^ 1 +]
146 [3 2 4 + ^ 1 + 5 /]
147 [1 5 + 2 ^ 4 * 3 +]
148 [1 5 - 3 * 2 ^ 4 +]
149 [1 3 * 4 * 2 ^ 5 +]
150 [3 4 + 1 - 5 2 ^ *]
151 [3 4 ^ 5 - 2 * 1 -]
152 [4 5 * 1 - 2 3 ^ *]
153 [3 4 ^ 5 - 2 * 1 +]
154 [1 5 - 3 4 ^ + 2 *]
155 [1 2 + 3 ^ 4 + 5 *]
156 [1 5 + 2 ^ 3 + 4 *]
157 [1 4 + 2 5 ^ * 3 -]
158 [1 5 - 3 4 ^ 2 * +]
159 [4 5 * 2 3 ^ * 1 -]
160 [1 3 + 2 * 4 * 5 *]
161 [4 5 * 2 3 ^ * 1 +]
162 [1 5 + 3 - 4 ^ 2 *]
163 [1 4 + 2 5 ^ * 3 +]
164 [3 4 * 1 + 2 ^ 5 -]
165 [3 4 ^ 1 - 2 * 5 +]
166 [5 1 - 3 4 ^ 2 * +]
167 [1 3 * 4 ^ 2 * 5 +]
168 [3 4 + 5 2 ^ 1 - *]
169 [1 3 + 4 + 5 + 2 ^]
170 [5 1 - 3 4 ^ + 2 *]
171 [2 4 5 + ^ 1 + 3 /]
172 [1 3 * 4 ^ 5 + 2 *]
173 [3 4 ^ 5 + 2 * 1 +]
174 [1 5 + 3 4 ^ + 2 *]
175 [3 4 + 1 * 5 2 ^ *]
176 [3 4 + 5 2 ^ * 1 +]
177 [1 2 + 4 3 ^ 5 - *]
178 []
179 [1 2 + 5 ^ 4 3 ^ -]
180 [3 4 + 1 - 2 ^ 5 *]
181 [4 5 * 3 2 ^ * 1 +]
182 [3 4 + 5 2 ^ 1 + *]
183 []
184 [3 2 ^ 5 * 1 + 4 *]
185 [3 2 ^ 4 * 1 + 5 *]
186 []
187 [1 2 + 4 3 ^ * 5 -]
188 [2 1 5 + ^ 3 * 4 -]
189 [2 5 + 4 1 - 3 ^ *]
190 []
191 [5 2 - 4 3 ^ * 1 -]
192 [4 5 + 1 - 2 ^ 3 *]
193 [5 2 - 4 3 ^ * 1 +]
194 []
195 [5 2 - 4 3 ^ 1 + *]
196 [3 5 + 1 - 2 ^ 4 *]
197 [1 2 + 4 3 ^ * 5 +]
198 []
199 []