login

Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).

a(n) is the number of ways n can be calculated with expressions of the form "d1 o1 d2 o2 d3 o3 d4" where d1-d4 are decimal digits (0-9) and o1-o3 are chosen from the four basic arithmetic operators (+, -, *, /).
2

%I #39 Nov 10 2022 12:36:09

%S 29235,12654,12450,12425,12427,11915,12419,11792,12062,11725,8748,

%T 7686,8180,6632,6549,6077,5758,4532,4915,3503,3649,3451,2684,2468,

%U 3253,2288,1957,2347,2197,1627,2028,1444,1899,1439,1281,1531,2080,1195,1126,1147,1513

%N a(n) is the number of ways n can be calculated with expressions of the form "d1 o1 d2 o2 d3 o3 d4" where d1-d4 are decimal digits (0-9) and o1-o3 are chosen from the four basic arithmetic operators (+, -, *, /).

%C This sequence is an extension of the "four fours" puzzle.

%C Expressions follow operator precedence (*/) then (+-), and left to right within the same level of precedence: "5/6/7/8" is ((5/6)/7)/8, "3-4+5*8" is 3-4+(5*8) = (3-4)+40 = -1+40 = 39.

%C Expressions are treated as ordered, so that 1+2+3+4 is distinct from 1+3+2+4 (but has the same value).

%C If negative n is allowed, the first nonzero a(n) is n = -729 (0-9*9*9). The last nonzero a(n) is n = 6561 (9*9*9*9).

%C There are 671 nonzero terms. - _Michael S. Branicky_, Sep 24 2022

%H Michael S. Branicky, <a href="/A357272/b357272.txt">Table of n, a(n) for n = 0..6561</a>

%e a(235) = 9 because 235 may be expressed in nine ways: "3*9*9-8", "5*6*8-5", "5*8*6-5", "6*5*8-5", "6*8*5-5", "8*5*6-5", "8*6*5-5", "9*3*9-8", and "9*9*3-8".

%o (Python)

%o from itertools import product

%o from fractions import Fraction

%o from collections import Counter

%o def afull(): # all further terms are 0

%o a = Counter()

%o for digs in product("0123456789", repeat=4):

%o for ops in product("+-*/", repeat=3):

%o e = digs[0] + "".join(ops[i] + digs[i+1] for i in range(3))

%o if "/0" in e: continue

%o if "/" in e:

%o for d in set(digs): e = e.replace(d, f"Fraction({d}, 1)")

%o t = eval(e)

%o if t >= 0 and t.denominator == 1: a[t] += 1

%o return [a[n] for n in range(max(a)+1)]

%o print(afull()[:100]) # _Michael S. Branicky_, Sep 24 2022

%K nonn,base

%O 0,1

%A _Rod McFarland_, Sep 22 2022