A cryptarithm, or cryptarithmetic puzzle, is an arithmetic problem made up of words. To solve the problem, you need to find a digit for each letter so that the problem is correct, and so that no two letters represent the same digit. For example, the most famous cryptarithm is:

  S E N D
+ M O R E
=========
M O N E Y

There is a solution with S=9, E=5, N=6, D=7, M=1, O=0, R=8, Y=2, since

  9 5 6 7
+ 1 0 8 5
=========
1 0 6 5 2

and it turns out that this is the only solution.

This program is a Java Applet that finds all possible solutions to cryptarithms. I wrote it around 2003-2005, when it was possible to run Java applets in the browser. It turns out that, in 2020, running Java in the browser is dead.

There are three ways you can see this program in action:

  1. I wrote a blog post about this program, how it came to be, and why I resurrected it 15 years later. There is a 20-second video at the end showing the program in action.
  2. Go to its Github repository. The README file has instructions on how to run it if you have VS Code installed.
  3. There is an online version on repl.it. After it loads, you need to click on the green “Run” button near the middle of the toolbar at the top of the screen, and then wait quite a while for an X Server to start and apparently lots of other stuff. Once it loads, it helps to drag the pane edges to make the applet window larger. Unfortunately, there are some bugs in the repl.it implementation of the Swing graphics library, so the shift key does not work (!). You can’t enter send+more=money, but you can enter money-more=send and it does work.

The Github README will explain more about the features, and has other problems you can put in.