#!/usr/local/bin/perl -w @op = 0..8; for (;;){ $res=8; @sol=(); for (1..4){ $o = int rand(@op); if ($o ==0) { $res *= 8; push @sol, "*";} elsif ($o==1){ $res /= 8; push @sol, "/";} elsif ($o==2){ $res = $res % 8; push @sol, "%";} elsif ($o==3){ $res = $res **8; push @sol, "**";} elsif ($o==4){ $res = $res ^8; push @sol, "^";} elsif ($o==5){ $res = $res |8; push @sol, "|";} elsif ($o==6){ $res = $res &8; push @sol, "&";} elsif ($o==7){ $res = $res <<8; push @sol, "<<";} elsif ($o==8){ $res = $res >>8; push @sol, ">>";} } if ($res==9){ print "@sol\n"; # exit; } } __END__ Finding how to compute 9 with 5 "8's" whitout using + or -