Last active
August 5, 2017 20:01
-
-
Save vladris/c97fe158082000ae06ad624527433de6 to your computer and use it in GitHub Desktop.
24 solver
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from itertools import permutations, product, zip_longest | |
from sys import argv | |
args = sum([[1, 11] if arg in "aA" else [int(arg)] for arg in argv[1:5]], []) | |
for xs in permutations(args, 4): | |
if sum(n == 1 or n == 11 for n in xs) > len(args) - 4: | |
continue | |
for ops in product("+-*/", repeat=3): | |
for exp in ["(...).(...)", "((...)..)..", "(..(...)).."]: | |
exp = exp.replace(".", "{}").format(*sum(zip_longest(xs, ops), ())) | |
try: | |
if eval(exp) == 24: | |
print(exp) | |
exit() | |
except ZeroDivisionError: | |
pass | |
print("No solution") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
(1+11)+(1+11)
(1+11)*(1*2)
(1+11)*(3-1)
No solution
((11*11)-1)/5
No solution
No solution
((1+1)+1)*8
(1+11)*(11-9)
No solution
((1*11)*2)+2
(1+2)*(11-3)
((1+11)/2)*4
No solution
(1+11)+(2*6)
(1+2)*(1+7)
(1+(1*2))*8
((1+2)*11)-9
(1+11)+(2+10)
((1*11)-3)*3
(1+11)+(3*4)
(1+11)*(5-3)
((1+11)/3)*6
(1+(1*7))*3
(1-1)+(3*8)
(1+11)+(3+9)
(1+(11*3))-10
((1+1)+4)*4
((1*11)-5)*4
((1+11)-6)*4
((1+4)*7)-11
(1+11)+(4+8)
(1*11)+(4+9)
((1+1)*10)+4
(1-5)*(5-11)
((1*5)-1)*6
(1+11)+(5+7)
(1*11)+(5+8)
(11-1)+(5+9)
((1+11)/5)*10
(1+11)+(6+6)
(1*11)+(6+7)
((1+11)-8)*6
((1+1)*9)+6
No solution
(1-7)*(7-11)
(1+7)*(11-8)
(1+11)*(9-7)
((1+1)*7)+10
((1*11)-8)*8
((1+11)-9)*8
(1+11)*(10-8)
No solution
No solution
No solution
((11+2)*2)-2
((11-2)+3)*2
(1+2)*(2*4)
(1+5)*(2+2)
(1+2)*(2+6)
(2+2)*(7-1)
((2-1)+2)*8
((1+2)+9)*2
(1*2)*(2+10)
(1+3)*(2*3)
((1+2)+3)*4
(1+2)*(3+5)
((1*2)+6)*3
(1+2)+(3*7)
((1+3)+8)*2
(1*2)*(3+9)
(1+(2*10))+3
(1+2)*(4+4)
(11+(2*4))+5
((11*2)-4)+6
((1-2)+7)*4
((1-2)+4)*8
((1+9)*2)+4
((1*2)*10)+4
(1-2)+(5*5)
((1-2)+5)*6
(1*2)*(5+7)
((1+5)/2)*8
((1+2)*5)+9
(11-2)+(5+10)
((1+2)*6)+6
((1+7)/2)*6
(1/2)*(6*8)
((1*2)*9)+6
((1+2)*10)-6
(11+(7/7))*2
(1+(2*8))+7
(1+(2*7))+9
((1*2)*7)+10
((1*2)*8)+8
(11+(8/2))+9
((11*2)-8)+10
(11+(9/9))*2
(11-9)*(2+10)
(11+(10/10))*2
(1+3)*(3+3)
((1*3)+3)*4
(1*3)*(3+5)
((1+6)*3)+3
(1*3)+(3*7)
((1+8)*3)-3
(1+3)*(9-3)
((1-3)+10)*3
(1*3)*(4+4)
(1+3)+(4*5)
(11+3)+(4+6)
((1+3)*7)-4
((1+3)*4)+8
(1+(3*9))-4
(1+3)*(10-4)
(11+3)+(5+5)
(1+(3*6))+5
(1+5)*(7-3)
(1+(3*5))+8
((1*3)*5)+9
((3*5)-1)+10
((1-3)+6)*6
(1*6)*(7-3)
(1+(6/3))*8
((1+9)*3)-6
((1*3)*10)-6
(1-7)*(3-7)
(11+(3*7))-8
((1+7)/3)*9
(1+(3*10))-7
((1+3)*8)-8
(1/3)*(8*9)
(11-10)*(3*8)
((11/3)*9)-9
((1+10)*3)-9
(1+3)+(10+10)
((1+4)*4)+4
(1*4)+(4*5)
((1+6)*4)-4
(1+(4*4))+7
((1*4)*4)+8
((1-4)+9)*4
(1*4)*(10-4)
((4*5)-1)+5
((11+5)/4)*6
(1+(4*7))-5
(1+5)*(8-4)
((4-1)*5)+9
(1-5)*(4-10)
((1+4)*6)-6
((1-4)+7)*6
((1-4)+6)*8
(9-(1+4))*6
(11-10)*(4*6)
(1+7)*(7-4)
((1+7)*4)-8
(1-9)*(4-7)
(11-4)+(7+10)
((1*4)*8)-8
(1+(4*8))-9
((4-11)+10)*8
No solution
(1+4)+(9+10)
(1*4)+(10+10)
(5-(1/5))*5
((1+5)*5)-6
(7-(11/5))*5
(5*8)-(11+5)
(1+5)*(9-5)
((5*5)-11)+10
((1*5)*6)-6
(1+(5*6))-7
((1-5)+8)*6
(1*6)*(9-5)
(1+5)*(10-6)
(5-(11/7))*7
((1-5)+7)*8
(1-7)*(5-9)
(1+(7/5))*10
((1*8)-5)*8
(1-9)*(5-8)
(1+5)+(8+10)
(1+5)+(9+9)
(1*5)+(9+10)
((11*10)+10)/5
((11-6)*6)-6
(11*6)-(6*7)
((11-8)*6)+6
((1-6)+9)*6
(1*6)*(10-6)
(6*7)-(11+7)
((11+7)/6)*8
(1+7)*(9-6)
(1+6)+(7+10)
((1-6)+8)*8
(1+6)+(8+9)
(1*6)+(8+10)
(1*6)+(9+9)
(11-6)+(9+10)
No solution
No solution
((7-11)+7)*8
(1+7)+(7+9)
(1*7)+(7+10)
(1+7)+(8+8)
(1*7)+(8+9)
(1*8)*(10-7)
(7-1)+(9+9)
(1-9)*(7-10)
(11-7)+(10+10)
(1*8)+(8+8)
((11-9)*8)+8
((1-8)+10)*8
No solution
No solution
No solution
No solution
No solution
No solution
No solution
No solution
(2+2)*(2*3)
((2+2)+2)*4
(2+(2*5))*2
No solution
((2*7)-2)*2
(2+(2/2))*8
(2*(2+9))+2
(2+2)+(2*10)
(2+2)*(3+3)
((2+2)+4)*3
((2*5)-2)*3
((2/2)+3)*6
((2/2)+7)*3
(2-2)+(3*8)
(2+(2/3))*9
(2*(3+10))-2
((2*4)-2)*4
(2+2)+(4*5)
(2-2)+(4*6)
((2+2)*7)-4
((2+2)*4)+8
(2+(2*9))+4
(2+2)*(10-4)
((2+5)+5)*2
(2*(5+6))+2
(2*5)+(2*7)
(2*(5+8))-2
((5-2)+9)*2
(2+(2/5))*10
((2+6)/2)*6
(2*(2+7))+6
(2*(2+6))+8
((2*9)-6)*2
(2+(2*6))+10
((7-2)+7)*2
(2+(2*7))+8
No solution
(7+(10/2))*2
((2+2)*8)-8
((2*9)-2)+8
((2*8)-2)+10
No solution
(2*(9-2))+10
(2+2)+(10+10)
((2+3)+3)*3
No solution
((2+5)*3)+3
(2*3)+(3*6)
(2*3)*(7-3)
(2+(3/3))*8
((2+3)*3)+9
(3+(10/2))*3
((2+3)*4)+4
((3-2)+5)*4
(2+(3*6))+4
((2-3)+7)*4
((2-3)+4)*8
(2/3)*(4*9)
(2+(3*4))+10
(2-3)+(5*5)
((2-3)+5)*6
(2+(3*5))+7
(2*(3+5))+8
(2+(3*9))-5
(2+10)*(5-3)
((2+3)*6)-6
((2*7)-6)*3
((2+8)*3)-6
((2+6)/3)*9
(2*3)*(10-6)
(2*7)+(3+7)
((2+7)/3)*8
(3/2)*(7+9)
(2+(7*10))/3
((2*8)-8)*3
(8/2)*(9-3)
(2*3)+(8+10)
(2*3)+(9+9)
(2+3)+(9+10)
(2*(10-3))+10
(2*4)+(4*4)
((2+5)*4)-4
(2+(4*4))+6
(2*4)*(7-4)
(2+(4/4))*8
(4*(9-2))-4
(2*(4+10))-4
(2*(5+5))+4
((2+4)*5)-6
(4-2)*(5+7)
((2-4)+5)*8
(2+4)*(9-5)
(2*5)+(4+10)
((2-4)+6)*6
(2+(4*7))-6
(2/4)*(6*8)
(2+(4/6))*9
(2*4)+(6+10)
(2*(7+7))-4
((2*7)-8)*4
(2*4)+(7+9)
(2*4)*(10-7)
(2*4)+(8+8)
(9-(2+4))*8
(2+4)+(8+10)
(2+4)+(9+9)
((2*9)-4)+10
(2+(4/10))*10
No solution
No solution
(2*7)+(5+5)
(2+(5/5))*8
(2*5)+(5+9)
(5-(2/10))*5
((2*5)-6)*6
((2-5)+7)*6
(2+(5*6))-8
((5/2)*6)+9
(2/5)*(6*10)
(2*5)+(7+7)
((2*5)-7)*8
(5*7)-(2+9)
(2+5)+(7+10)
(5*8)-(2*8)
(2+5)+(8+9)
(2-10)*(5-8)
No solution
((2*10)-5)+9
((2+10)/5)*10
(2*6)+(6+6)
(6+(6*7))/2
(2+(6/6))*8
(2+6)*(9-6)
(2+6)+(6+10)
No solution
((2-6)+7)*8
(2+6)+(7+9)
(2+6)*(10-7)
(2+6)+(8+8)
(2/6)*(8*9)
(2*(6+10))-8
(2+(6/9))*9
(2-10)*(6-9)
((2*10)-6)+10
No solution
(2+7)+(7+8)
No solution
(2+(10/7))*7
((2-7)+8)*8
(2*(7+9))-8
No solution
No solution
(2+10)*(9-7)
(2*(7+10))-10
(2+(8/8))*8
((2-8)+9)*8
(8-2)+(8+10)
(2+(9/9))*8
(2*(8+9))-10
(2+10)*(10-8)
No solution
No solution
(9+(10/2))+10
No solution
((3*3)*3)-3
((3*3)-3)*4
(3*3)+(3*5)
(3+3)+(3*6)
(3+3)*(7-3)
((3+3)-3)*8
(9-(3/3))*3
(3*10)-(3+3)
(3*4)+(3*4)
((3/3)+5)*4
(3-3)+(4*6)
((4-3)+7)*3
(3+3)*(8-4)
(3+(3*4))+9
No solution
(5*5)-(3/3)
(3+(3*5))+6
((3*5)-7)*3
No solution
(3+3)*(9-5)
(3-(3/5))*10
((6/3)+6)*3
(3*(3+7))-6
((3*3)-6)*8
(3*3)+(6+9)
(3+3)*(10-6)
(3+(3/7))*7
(3*3)+(7+8)
(3-7)*(3-9)
No solution
No solution
(3*(3+8))-9
(3+3)+(8+10)
(3+3)+(9+9)
(3+(3*10))-9
No solution
((3+4)*4)-4
(3+(4*4))+5
(3+(4/4))*6
((3-4)+7)*4
((3+4)-4)*8
((4+4)/3)*9
(4*(10-3))-4
(3-4)+(5*5)
((3-4)+5)*6
(3*4)+(5+7)
((3+5)*4)-8
((3*5)-9)*4
((3*4)/5)*10
(3*4)+(6+6)
No solution
((3*4)-8)*6
((3-6)+9)*4
((3*6)-4)+10
(3+(4*7))-7
(4*(7-3))+8
(3*(4+7))-9
(3+4)+(7+10)
No solution
(3+4)+(8+9)
(3*4)*(10-8)
(3*(9-4))+9
No solution
(3*10)+(4-10)
No solution
(3+(5/5))*6
(5-3)*(5+7)
((3+5)-5)*8
(3+(9/5))*5
No solution
((3-5)+6)*6
((5+7)/3)*6
(3*(6-5))*8
(3+(5*6))-9
(3+5)+(6+10)
No solution
((3*7)-5)+8
(3+5)+(7+9)
(3+5)*(10-7)
(3+5)+(8+8)
(3*9)+(5-8)
No solution
(3-9)*(5-9)
((3+9)/5)*10
(10-(10/5))*3
(3+(6/6))*6
((3-6)+7)*6
((3+6)-6)*8
(3+6)+(6+9)
((6-3)*10)-6
(3+(7/7))*6
(3+6)+(7+8)
((3*7)-6)+9
((6/3)*7)+10
(3+(8/8))*6
((3-8)+9)*6
((6-8)+10)*3
(3*9)+(6-9)
(3-9)*(6-10)
(3-(6/10))*10
(3+7)+(7+7)
((3+7)-7)*8
(9-(7/7))*3
((3*7)-7)+10
(3*(8-7))*8
((7-8)+9)*3
No solution
(3+9)*(9-7)
(3*9)+(7-10)
(7-3)+(10+10)
((3+8)-8)*8
(3*8)*(9-8)
((8*10)-8)/3
(3*8)+(9-9)
(3*8)*(10-9)
(3*8)+(10-10)
(9-3)+(9+9)
((9+9)-10)*3
(9-(10/10))*3
No solution
(4+4)+(4*4)
((4/4)+5)*4
((4+4)-4)*6
(4+4)*(7-4)
((4+4)*4)-8
(4*(9-4))+4
((4*4)-10)*4
(4+(4/5))*5
(4*(5-4))*6
((4-5)+7)*4
((4+4)-5)*8
No solution
(4+(10/5))*4
No solution
No solution
((4-6)+8)*4
((4*4)/6)*9
(4+4)+(6+10)
(4-(4/7))*7
(4+(4*7))-8
(4+4)+(7+9)
(4+4)*(10-7)
(4+4)+(8+8)
(4*9)-(4+8)
(4-8)*(4-10)
No solution
No solution
((10*10)-4)/4
(4+(5*5))-5
((4+5)-5)*6
(7-(5/5))*4
(4-(5/5))*8
((4*5)-5)+9
(4+5)+(5+10)
(4*(6-5))*6
((5-6)+7)*4
((4+5)-6)*8
(4+5)+(6+9)
(4+(5*6))-10
(5*7)-(4+7)
(4+5)+(7+8)
(4*7)+(5-9)
((7-5)*10)+4
(5-(8/4))*8
(4*(9-5))+8
((4+8)/5)*10
(5+(9/9))*4
(4-10)*(5-9)
(5+(10/10))*4
((4+6)-6)*6
(4*6)*(7-6)
(4+6)+(6+8)
(4*9)-(6+6)
(6/4)*(6+10)
(4+6)+(7+7)
((4+6)-7)*8
(6/4)*(7+9)
(4*7)+(6-10)
(4*6)+(8-8)
(4*6)*(9-8)
(4*(10-6))+8
(4*6)+(9-9)
(4*6)*(10-9)
(4*6)+(10-10)
(7-(7/7))*4
(4-(7/7))*8
No solution
No solution
((4+7)-8)*8
(4+8)*(9-7)
((7/4)*8)+10
(7-(9/9))*4
(4*10)-(7+9)
(7-(10/10))*4
(4-(8/8))*8
((4+8)-9)*8
(4+8)*(10-8)
(4-(9/9))*8
((4+9)-10)*8
(4-(10/10))*8
No solution
(9-4)+(9+10)
No solution
No solution
(5*5)-(5/5)
(5+(5*5))-6
No solution
No solution
(5+5)+(5+9)
No solution
((5+5)-6)*6
(5*5)+(6-7)
(5+5)+(6+8)
No solution
No solution
(5+5)+(7+7)
((5+5)-7)*8
No solution
((5+7)/5)*10
(5*5)-(8/8)
(5*5)+(8-9)
((5+10)/5)*8
(5*5)-(9/9)
(5*5)+(9-10)
(5*5)-(10/10)
(5-(6/6))*6
(5+6)+(6+7)
(6*(8-5))+6
(6*9)-(5*6)
((6+6)/5)*10
(5-(7/7))*6
((5+7)-8)*6
((7-5)*9)+6
No solution
((5+6)-8)*8
((5+8)-9)*6
(5*6)*(8/10)
(5*(9-6))+9
((5+9)-10)*6
(5-(10/10))*6
No solution
No solution
(5+7)*(9-7)
((7-5)*7)+10
((7-5)*8)+8
((5+7)-9)*8
(5+7)*(10-8)
No solution
(5*(10-7))+9
((7/5)*10)+10
(5*8)-(8+8)
(8/(8-5))*9
((5+8)-10)*8
No solution
No solution
No solution
No solution
No solution
(9-5)+(10+10)
No solution
(6+6)+(6+6)
No solution
((6+6)-8)*6
(6*6)*(6/9)
(6*10)-(6*6)
No solution
No solution
(6+6)*(9-7)
(6*(10-7))+6
(6/(8-6))*8
((6+6)-9)*8
(6+6)*(10-8)
No solution
((6+10)/6)*9
No solution
No solution
No solution
No solution
((7+7)-10)*6
No solution
(6*8)/(9-7)
(6*7)-(8+10)
(6*7)-(9+9)
No solution
((10-7)*10)-6
((8-6)*8)+8
((8+8)/6)*9
(6*8)/(10-8)
(8/6)*(9+9)
(9*(10-8))+6
No solution
No solution
((9/6)*10)+9
No solution
(10-6)+(10+10)
No solution
No solution
No solution
No solution
No solution
No solution
No solution
No solution
(7*(9-7))+10
No solution
No solution
(8*(9-7))+8
(8*10)-(7*8)
No solution
(8*9)/(10-7)
(7*(10-8))+10
No solution
No solution
No solution
No solution
No solution
No solution
(8*(10-8))+8
No solution
No solution
No solution
No solution
No solution
No solution
No solution
No solution
No solution
No solution
No solution
No solution