Cryptarithms
Solve base-10 arithmetic where letters stand for digits, track carries, then decode the requested extraction.
What is the Cryptarithms?
A cryptarithm replaces decimal digits with letters. Each letter represents one digit, and the same letter must have the same digit everywhere.
You solve it by using arithmetic constraints—especially column sums and carries—until the letter-to-digit mapping is determined. A Codebusters-style problem may then ask you to extract a word from the solved mapping.
The cipher mechanics on this page are self-contained. Science Olympiad event formats, allowed variants, and tournament constraints can change by season; the current official Rules Manual and official clarifications take precedence.
No outside reference is assumed. Work through Foundations → Complete Reference → Encryption → Decryption in order, then use the competition and cryptanalysis sections.
What you need to know
- Each distinct letter maps to one decimal digit 0–9, and different letters map to different digits.
- A leading letter of a multi-digit number is normally not zero.
- Carries connect one column to the next and are often the strongest constraints.
Beginner glossary
| Term | Meaning |
|---|---|
| Cryptarithm | An arithmetic puzzle where letters stand for decimal digits. |
| Carry | A value passed from one column to the next during addition. |
| One-to-one mapping | Each letter has one digit and each used digit has one letter. |
| Leading zero | A zero in the first position of a multi-digit number; normally forbidden. |
| Extraction | Using the solved mapping to turn a requested digit sequence into letters/word. |
Keep this beside you while solving
| Column equation | Meaning |
|---|---|
| A + B = C + 10k | k is the carry into the next column, usually 0 or 1 for two addends. |
| A + A + carry = B + 10k | Repeated letters sharply restrict possibilities. |
| Leading letter ≠ 0 | Multi-digit numbers cannot begin with zero in standard decimal notation. |
| Digit | Possible mapping status |
|---|---|
| 0 | Assign exactly one letter |
| 1 | Assign exactly one letter |
| 2 | Assign exactly one letter |
| 3 | Assign exactly one letter |
| 4 | Assign exactly one letter |
| 5 | Assign exactly one letter |
| 6 | Assign exactly one letter |
| 7 | Assign exactly one letter |
| 8 | Assign exactly one letter |
| 9 | Assign exactly one letter |
Column-solving template
Start with columns containing repeated letters or forced carries. Record every proven letter↔digit assignment so you do not reuse a digit illegally.
How encryption works
Choose a digit mapping
Assign distinct digits to the letters used.
Write true arithmetic equations
Convert numeric addends/results into letters using the mapping.
Hide the mapping
The solver sees the letter equations, not the digits.
Provide extraction if desired
After the mapping is solved, selected digits can spell a word by converting digits back to letters.
How decryption works
Work rightmost column first
Write the modular digit equation and possible carry.
Propagate carries
Every solved carry constrains the next column.
Track used digits
Cross out digits already assigned to other letters.
Verify every equation
A complete mapping must make all arithmetic true, then use it for the extraction.
How to approach it in Codebusters practice
- Do not guess the final extraction word before solving enough arithmetic; it can bias your mapping.
- Keep a 0–9 digit table and a letter table side by side.
- Use repeated letters and columns that produce forced carries first.
What the problem gives you vs. what you produce
| Part | What to expect |
|---|---|
| You may be given | One or more letter-based arithmetic equations plus an extraction instruction. |
| You must find | The digit mapping, verify the arithmetic, then decode the extraction. |
| Fastest first move | Work from the least-significant column, track possible carries, and exploit repeated letters. |
How to attack an unknown or partially known key
- This is a constraint-satisfaction problem rather than frequency cryptanalysis.
- Useful deductions come from parity, maximum/minimum sums, carries, repeated letters, and leading-zero restrictions.
- When several equations share letters, solve the most constrained columns first.
Follow one example from start to finish
C=1 O=2 D=3 E=4 B=5 U=6 S=7 R=9
COD + EBU = BSR
123 + 456 = 579
Before moving on, make sure you can answer these without another site:
- Can you write the ones-column equation including its carry?
- Can you explain why two different letters cannot share a digit?
- Can you verify the entire equation after finding a candidate mapping?
Common mistakes
Allowing two letters to share a digit.
Forgetting a carry.
Allowing a leading letter to be zero.
Using the extraction to force an arithmetic mapping that does not satisfy the equations.
Competition speed strategies
Create a carry row above the arithmetic immediately.
Mark impossible digits rather than repeatedly reconsidering them.
Prioritize columns with repeated letters or obvious carry constraints.
What to remember under time pressure
See every transformation
Use the lab to change inputs and keys, keep the relevant reference material visible, inspect each intermediate transformation, and then read the “How to reverse it” panel so encryption and decryption connect.