Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Challenges

Post History

66%
+2 −0
Challenges 24 game automated solver

The goal is to write a program, whose byte size is minimized, that inputs four integers, not necessarily distinct, chosen from $1, 2, 3, ..., 9$ and then determines if it is possible to combine the...

2 answers  ·  posted 5mo ago by will.octagon.gibson‭  ·  last activity 4mo ago by jhnc‭

Question code-golf math
#4: Post edited by user avatar will.octagon.gibson‭ · 2026-05-07T19:30:03Z (4 months ago)
Added one more test case
  • The goal is to write a program, whose byte size is minimized, that inputs four integers, not necessarily distinct, chosen from $1, 2, 3, ..., 9$ and then determines if it is possible to combine the inputted numbers using only the operations of addition, subtraction, multiplication and division to form a mathematical expression whose value is $24$. Parentheses are allowed.
  • If it is possible, the program displays an expression whose value is $24$.
  • Otherwise, the program displays the word "Impossible", `false`, 0 or something similar; the choice is yours as long as you are consistent.
  • By "display", I mean any output (such as displaying on the screen or the return value of a function).
  • ## Clarifications:
  • You may choose any input format you like as long as you use the same format for all test cases.
  • You may choose any output format you like for expressions such as normal mathematical notation OR Reverse Polish Notation OR …
  • The expression you form must contain each inputted number exactly once.
  • You may only use the four arithmetic operations mentioned above, so no square roots, no factorials, …
  • Although subtraction is allowed, the use of a negative sign is not allowed. Similarly, negation of a number or expression is not allowed.
  • Decimal points are not allowed.
  • Assume everything is done in base $10$.
  • Concatenation in any form is not allowed.
  • ## Test cases:
  • There may be multiple ways for the inputted numbers to form $24$. Your program only needs to display one such expression, not necessarily the ones listed below.
  • 3357 -> 3(3x5-7)
  • 1346 -> 6/(1-3/4)
  • 3377 -> 7(3+3/7)
  • 3388 -> 8/(3-8/3)
  • 1116 -> Impossible
  • 1179 -> Impossible
  • 1557 -> Impossible
  • 1577 -> Impossible
  • 1277 -> (7x7-1)/2
  • 1668 -> 6/(1-6/8)
  • 5599 -> 5x5-9/9
  • 2244 -> 2(2x4+4)
  • 2222 -> Impossible
  • 3358 -> Impossible
  • 3467 -> Impossible
  • 7899 -> Impossible
  • ---
  • If you wish you can try my 24 Game solver available here:
  • https://openprocessing.org/sketch/2927650
  • You interact with my program with finger taps or mouse clicks.
  • The goal is to write a program, whose byte size is minimized, that inputs four integers, not necessarily distinct, chosen from $1, 2, 3, ..., 9$ and then determines if it is possible to combine the inputted numbers using only the operations of addition, subtraction, multiplication and division to form a mathematical expression whose value is $24$. Parentheses are allowed.
  • If it is possible, the program displays an expression whose value is $24$.
  • Otherwise, the program displays the word "Impossible", `false`, 0 or something similar; the choice is yours as long as you are consistent.
  • By "display", I mean any output (such as displaying on the screen or the return value of a function).
  • ## Clarifications:
  • You may choose any input format you like as long as you use the same format for all test cases.
  • You may choose any output format you like for expressions such as normal mathematical notation OR Reverse Polish Notation OR …
  • The expression you form must contain each inputted number exactly once.
  • You may only use the four arithmetic operations mentioned above, so no square roots, no factorials, …
  • Although subtraction is allowed, the use of a negative sign is not allowed. Similarly, negation of a number or expression is not allowed.
  • Decimal points are not allowed.
  • Assume everything is done in base $10$.
  • Concatenation in any form is not allowed.
  • ## Test cases:
  • There may be multiple ways for the inputted numbers to form $24$. Your program only needs to display one such expression, not necessarily the ones listed below.
  • 3357 -> 3(3x5-7)
  • 1346 -> 6/(1-3/4)
  • 3377 -> 7(3+3/7)
  • 3388 -> 8/(3-8/3)
  • 1116 -> Impossible
  • 1179 -> Impossible
  • 1557 -> Impossible
  • 1577 -> Impossible
  • 1277 -> (7x7-1)/2
  • 1668 -> 6/(1-6/8)
  • 5599 -> 5x5-9/9
  • 2244 -> 2(2x4+4)
  • 2222 -> Impossible
  • 3358 -> Impossible
  • 3467 -> Impossible
  • 7899 -> Impossible
  • 3333 -> 3x3x3-3
  • ---
  • If you wish you can try my 24 Game solver available here:
  • https://openprocessing.org/sketch/2927650
  • You interact with my program with finger taps or mouse clicks.
#3: Post edited by user avatar will.octagon.gibson‭ · 2026-05-06T22:23:23Z (4 months ago)
Relax the form of the output in the case where an expression equal to 24 does not exist.
  • The goal is to write a program, whose byte size is minimized, that inputs four integers, not necessarily distinct, chosen from $1, 2, 3, ..., 9$ and then determines if it is possible to combine the inputted numbers using only the operations of addition, subtraction, multiplication and division to form a mathematical expression whose value is $24$. Parentheses are allowed.
  • If it is possible, the program displays an expression whose value is $24$.
  • Otherwise, the program displays the word "Impossible".
  • By "display", I mean any output (such as displaying on the screen or the return value of a function).
  • ## Clarifications:
  • You may choose any input format you like as long as you use the same format for all test cases.
  • You may choose any output format you like for expressions such as normal mathematical notation OR Reverse Polish Notation OR …
  • The expression you form must contain each inputted number exactly once.
  • You may only use the four arithmetic operations mentioned above, so no square roots, no factorials, …
  • Although subtraction is allowed, the use of a negative sign is not allowed. Similarly, negation of a number or expression is not allowed.
  • Decimal points are not allowed.
  • Assume everything is done in base $10$.
  • Concatenation in any form is not allowed.
  • ## Test cases:
  • There may be multiple ways for the inputted numbers to form $24$. Your program only needs to display one such expression, not necessarily the ones listed below.
  • 3357 -> 3(3x5-7)
  • 1346 -> 6/(1-3/4)
  • 3377 -> 7(3+3/7)
  • 3388 -> 8/(3-8/3)
  • 1116 -> Impossible
  • 1179 -> Impossible
  • 1557 -> Impossible
  • 1577 -> Impossible
  • 1277 -> (7x7-1)/2
  • 1668 -> 6/(1-6/8)
  • 5599 -> 5x5-9/9
  • 2244 -> 2(2x4+4)
  • 2222 -> Impossible
  • 3358 -> Impossible
  • 3467 -> Impossible
  • 7899 -> Impossible
  • ---
  • If you wish you can try my 24 Game solver available here:
  • https://openprocessing.org/sketch/2927650
  • You interact with my program with finger taps or mouse clicks.
  • The goal is to write a program, whose byte size is minimized, that inputs four integers, not necessarily distinct, chosen from $1, 2, 3, ..., 9$ and then determines if it is possible to combine the inputted numbers using only the operations of addition, subtraction, multiplication and division to form a mathematical expression whose value is $24$. Parentheses are allowed.
  • If it is possible, the program displays an expression whose value is $24$.
  • Otherwise, the program displays the word "Impossible", `false`, 0 or something similar; the choice is yours as long as you are consistent.
  • By "display", I mean any output (such as displaying on the screen or the return value of a function).
  • ## Clarifications:
  • You may choose any input format you like as long as you use the same format for all test cases.
  • You may choose any output format you like for expressions such as normal mathematical notation OR Reverse Polish Notation OR …
  • The expression you form must contain each inputted number exactly once.
  • You may only use the four arithmetic operations mentioned above, so no square roots, no factorials, …
  • Although subtraction is allowed, the use of a negative sign is not allowed. Similarly, negation of a number or expression is not allowed.
  • Decimal points are not allowed.
  • Assume everything is done in base $10$.
  • Concatenation in any form is not allowed.
  • ## Test cases:
  • There may be multiple ways for the inputted numbers to form $24$. Your program only needs to display one such expression, not necessarily the ones listed below.
  • 3357 -> 3(3x5-7)
  • 1346 -> 6/(1-3/4)
  • 3377 -> 7(3+3/7)
  • 3388 -> 8/(3-8/3)
  • 1116 -> Impossible
  • 1179 -> Impossible
  • 1557 -> Impossible
  • 1577 -> Impossible
  • 1277 -> (7x7-1)/2
  • 1668 -> 6/(1-6/8)
  • 5599 -> 5x5-9/9
  • 2244 -> 2(2x4+4)
  • 2222 -> Impossible
  • 3358 -> Impossible
  • 3467 -> Impossible
  • 7899 -> Impossible
  • ---
  • If you wish you can try my 24 Game solver available here:
  • https://openprocessing.org/sketch/2927650
  • You interact with my program with finger taps or mouse clicks.
#2: Post edited by user avatar will.octagon.gibson‭ · 2026-05-02T22:22:13Z (5 months ago)
Clarified the word DISPLAY
  • The goal is to write a program, whose byte size is minimized, that inputs four integers, not necessarily distinct, chosen from $1, 2, 3, ..., 9$ and then determines if it is possible to combine the inputted numbers using only the operations of addition, subtraction, multiplication and division to form a mathematical expression whose value is $24$. Parentheses are allowed.
  • If it is possible, the program displays an expression whose value is $24$.
  • Otherwise, the program displays the word "Impossible".
  • ## Clarifications:
  • You may choose any input format you like as long as you use the same format for all test cases.
  • You may choose any output format you like for expressions such as normal mathematical notation OR Reverse Polish Notation OR …
  • The expression you form must contain each inputted number exactly once.
  • You may only use the four arithmetic operations mentioned above, so no square roots, no factorials, …
  • Although subtraction is allowed, the use of a negative sign is not allowed. Similarly, negation of a number or expression is not allowed.
  • Decimal points are not allowed.
  • Assume everything is done in base $10$.
  • Concatenation in any form is not allowed.
  • ## Test cases:
  • There may be multiple ways for the inputted numbers to form $24$. Your program only needs to display one such expression, not necessarily the ones listed below.
  • 3357 -> 3(3x5-7)
  • 1346 -> 6/(1-3/4)
  • 3377 -> 7(3+3/7)
  • 3388 -> 8/(3-8/3)
  • 1116 -> Impossible
  • 1179 -> Impossible
  • 1557 -> Impossible
  • 1577 -> Impossible
  • 1277 -> (7x7-1)/2
  • 1668 -> 6/(1-6/8)
  • 5599 -> 5x5-9/9
  • 2244 -> 2(2x4+4)
  • 2222 -> Impossible
  • 3358 -> Impossible
  • 3467 -> Impossible
  • 7899 -> Impossible
  • ---
  • If you wish you can try my 24 Game solver available here:
  • https://openprocessing.org/sketch/2927650
  • You interact with my program with finger taps or mouse clicks.
  • The goal is to write a program, whose byte size is minimized, that inputs four integers, not necessarily distinct, chosen from $1, 2, 3, ..., 9$ and then determines if it is possible to combine the inputted numbers using only the operations of addition, subtraction, multiplication and division to form a mathematical expression whose value is $24$. Parentheses are allowed.
  • If it is possible, the program displays an expression whose value is $24$.
  • Otherwise, the program displays the word "Impossible".
  • By "display", I mean any output (such as displaying on the screen or the return value of a function).
  • ## Clarifications:
  • You may choose any input format you like as long as you use the same format for all test cases.
  • You may choose any output format you like for expressions such as normal mathematical notation OR Reverse Polish Notation OR …
  • The expression you form must contain each inputted number exactly once.
  • You may only use the four arithmetic operations mentioned above, so no square roots, no factorials, …
  • Although subtraction is allowed, the use of a negative sign is not allowed. Similarly, negation of a number or expression is not allowed.
  • Decimal points are not allowed.
  • Assume everything is done in base $10$.
  • Concatenation in any form is not allowed.
  • ## Test cases:
  • There may be multiple ways for the inputted numbers to form $24$. Your program only needs to display one such expression, not necessarily the ones listed below.
  • 3357 -> 3(3x5-7)
  • 1346 -> 6/(1-3/4)
  • 3377 -> 7(3+3/7)
  • 3388 -> 8/(3-8/3)
  • 1116 -> Impossible
  • 1179 -> Impossible
  • 1557 -> Impossible
  • 1577 -> Impossible
  • 1277 -> (7x7-1)/2
  • 1668 -> 6/(1-6/8)
  • 5599 -> 5x5-9/9
  • 2244 -> 2(2x4+4)
  • 2222 -> Impossible
  • 3358 -> Impossible
  • 3467 -> Impossible
  • 7899 -> Impossible
  • ---
  • If you wish you can try my 24 Game solver available here:
  • https://openprocessing.org/sketch/2927650
  • You interact with my program with finger taps or mouse clicks.
#1: Initial revision by user avatar will.octagon.gibson‭ · 2026-05-02T21:34:05Z (5 months ago)
24 game automated solver
The goal is to write a program, whose byte size is minimized, that inputs four integers, not necessarily distinct, chosen from $1, 2, 3, ..., 9$ and then determines if it is possible to combine the inputted numbers using only the operations of addition, subtraction, multiplication and division to form a mathematical expression whose value is $24$.  Parentheses are allowed.

If it is possible, the program displays an expression whose value is $24$.  
Otherwise, the program displays the word "Impossible".

## Clarifications:

You may choose any input format you like as long as you use the same format for all test cases.

You may choose any output format you like for expressions such as normal mathematical notation OR Reverse Polish Notation OR …

The expression you form must contain each inputted number exactly once.

You may only use the four arithmetic operations mentioned above, so no square roots, no factorials, …

Although subtraction is allowed, the use of a negative sign is not allowed. Similarly, negation of a number or expression is not allowed.

Decimal points are not allowed.

Assume everything is done in base $10$.

Concatenation in any form is not allowed.

## Test cases:

There may be multiple ways for the inputted numbers to form $24$.  Your program only needs to display one such expression, not necessarily the ones listed below.

3357 -> 3(3x5-7)  
1346 -> 6/(1-3/4)  
3377 -> 7(3+3/7)  
3388 -> 8/(3-8/3)  
1116 -> Impossible  
1179 -> Impossible  
1557 -> Impossible  
1577 -> Impossible  
1277 -> (7x7-1)/2  
1668 -> 6/(1-6/8)  
5599 -> 5x5-9/9  
2244 -> 2(2x4+4)  
2222 -> Impossible  
3358 -> Impossible  
3467 -> Impossible  
7899 -> Impossible  

---

If you wish you can try my 24 Game solver available here:

https://openprocessing.org/sketch/2927650

You interact with my program with finger taps or mouse clicks.