#!/usr/bin/perl $DEBUG = shift; $num[0]="3388"; $num[1]="3838"; $num[2]="3883"; $num[3]="8338"; $num[4]="8383"; $num[5]="8833"; $fmt[0]="%s%s%s%s%s%s%s"; $fmt[1]="%s%s%s%s(%s%s%s)"; $fmt[2]="%s%s(%s%s%s%s%s)"; $fmt[3]="%s%s(%s%s(%s%s%s))"; $fmt[4]="%s%s((%s%s%s)%s%s)"; $fmt[5]="%s%s(%s%s%s)%s%s"; $fmt[6]="(%s%s%s%s%s)%s%s"; $fmt[7]="(%s%s(%s%s%s))%s%s"; $fmt[8]="((%s%s%s)%s%s)%s%s"; $fmt[9]="(%s%s%s)%s%s%s%s"; $fmt[10]="(%s%s%s)%s(%s%s%s)"; $ops="+-*/"; for ($op1=0; $op1<4; $op1++) { for ($op2=0; $op2<4; $op2++) { for ($op3=0; $op3<4; $op3++) { for ($n=0; $n<6; $n++) { for ($f=0; $f<11; $f++) { $expression = sprintf ($fmt[$f], substr($num[$n],0,1), substr($ops,$op1,1), substr($num[$n],1,1), substr($ops,$op2,1), substr($num[$n],2,1), substr($ops,$op3,1), substr($num[$n],3,1)); $ans = eval($expression); print "$expression = $ans\n" if ($DEBUG); if ($ans eq "24") { print "ANS -> " if ($DEBUG); print "$expression = $ans\n"; } } } } } }