### Cryptarithm

Cryptarithm (also known as "Alphametics", "Cryptarithmetic", "Crypt-arithmetic") is a mathematical puzzle involving words where there is a one-to-one mapping between letters and digits that makes the arithmetic equation true. For example:

 MOTHER+FATHER=PARENT => 196753+286753=483506 ONE+THREE+FOUR=EIGHT => 942+15722+3987=20651 LETTERS+ALPHABET=SCRABBLE => 7088062+17531908=24619970 SIX*TWO=TWELVE => 986*345=340170

The arithmetic expression can contain round brackets, signs of addition (+), subtraction (-), multiplication (*), division (/), raising to a power (^) and factorial (!). Also the character ? can be used instead of any digit. For example:

 HE^2=SHE => 252=625 C+O+O=L! => 6+9+9=4! WHO-AM=I? => 105-28=77

The user may define the known values (digits) for letters. It will accelerate the search process.

Also the user can define additional search conditions: vowels correspond to even digits, consonants correspond to odd digits (or vice versa). For example, if vowels correspond to odd digits and consonants correspond to even digits, this cryptarithm would have only one solution:

 TWO+TWO=FOUR => 469+469=0938

Note: The list of vowels can be defined in the window Options (other letters of alphabet are considered as consonants).