#!perl -l $_=~('(.)'x5) && # (put our digits in $1..$5) y/2357//==2 && # It has 2 prime digits. "$1$2$4$5"!~/[$3-9]/ && # Digit 3 is the highest number. "$1$3$4$5"!~/[0-$2]/ && # Digit 2 is lowest. ($5>$2&$5<$1|$5>$1&$5<$2) && # Digit 5 is between digit 2 and digit 1 $5==$4/2 && # ... and is half of digit 4. !/(.).*\1/ && # There are no duplicates. $1==$3-1 && # Digit 1 is 1 less than digit 3. $1>$4+$5 && # Digit 1 is higher than the sum of digits 4 and 5. print for 0..9x5