PROCsolve24("1234") PROCsolve24("6789") PROCsolve24("1127") PROCsolve24("5566") END DEF PROCsolve24(s$) LOCAL F%, I%, J%, K%, L%, P%, T%, X$, o$(), p$(), t$() DIM o$(4), p$(24,4), t$(11) o$() = "", "+", "-", "*", "/" RESTORE FOR T% = 1 TO 11 READ t$(T%) NEXT DATA "abcdefg", "(abc)defg", "ab(cde)fg", "abcd(efg)", "(abc)d(efg)", "(abcde)fg" DATA "ab(cdefg)", "((abc)de)fg", "(ab(cde))fg", "ab((cde)fg)", "ab(cd(efg))" FOR I% = 1 TO 4 FOR J% = 1 TO 4 FOR K% = 1 TO 4 FOR L% = 1 TO 4 IF I%<>J% IF J%<>K% IF K%<>L% IF I%<>K% IF J%<>L% IF I%<>L% THEN P% += 1 p$(P%,1) = MID$(s$,I%,1) p$(P%,2) = MID$(s$,J%,1) p$(P%,3) = MID$(s$,K%,1) p$(P%,4) = MID$(s$,L%,1) ENDIF NEXT NEXT NEXT NEXT FOR I% = 1 TO 4 FOR J% = 1 TO 4 FOR K% = 1 TO 4 FOR T% = 1 TO 11 FOR P% = 1 TO 24 X$ = t$(T%) MID$(X$, INSTR(X$,"a"), 1) = p$(P%,1) MID$(X$, INSTR(X$,"b"), 1) = o$(I%) MID$(X$, INSTR(X$,"c"), 1) = p$(P%,2) MID$(X$, INSTR(X$,"d"), 1) = o$(J%) MID$(X$, INSTR(X$,"e"), 1) = p$(P%,3) MID$(X$, INSTR(X$,"f"), 1) = o$(K%) MID$(X$, INSTR(X$,"g"), 1) = p$(P%,4) F% = TRUE : ON ERROR LOCAL F% = FALSE IF F% IF EVAL(X$) = 24 THEN PRINT X$ : EXIT FOR I% RESTORE ERROR NEXT NEXT NEXT NEXT NEXT IF I% > 4 PRINT "No solution found" ENDPROC