Skip to content
Vamshi Jandhyala

Books · The Fiddler: Solutions

Chapter 10

Have You Heard the Buzz?

You count aloud, starting from 11 and working upward through the whole numbers. For any number that is a multiple of 77, or that contains the digit 77, you say “buzz” instead of the number. So the game begins 1,2,3,4,5,6,buzz,8,9,,13,buzz,15,16,buzz,18,19,20,1,2,3,4,5,6,\text{buzz},8,9,\dots,13,\text{buzz},15,16,\text{buzz},18,19,20,\dots where “buzz” has replaced 77, 1414, and 1717. How many times do you say “buzz” in the first 100100 turns?

The Fiddler, Zach Wissner-Gross, April 17, 2026(original post)

Solution

A number is buzzed when it is divisible by 77 or contains the digit 77, so count each set and remove the double-count. Among 1,,1001,\dots,100: multiples of 77 number 100/7=14\lfloor 100/7\rfloor = 14; numbers containing a 77 number 10+101=1910+10-1=19 (units-digit 77, plus the seventies, with 7777 shared); numbers in both (7,70,777,70,77) number 33. By inclusion–exclusion, 14+193=30.14 + 19 - 3 = \boxed{30}.

The computation

Apply the rule itself to each of the first hundred numbers, buzzing on a multiple of 77 or a digit 77, and count.

buzz = lambda n: n % 7 == 0 or '7' in str(n)
print(sum(buzz(n) for n in range(1, 101)))  # 30

Extra Credit

In the first 2020 turns only 15%15\% of the numbers were buzzed, but the buzzed share climbs as the count goes on. Find the smallest NN such that, from the NNth turn onward, at least half of the numbers counted so far have been buzzed.

Solution

The pressure comes from the digit rule. Among the dd-digit numbers, the fraction containing no 77 is (9/10)d(9/10)^d, so the fraction containing a 77 is 1(9/10)d1-(9/10)^d. This first passes 12\tfrac12 at d=7d=7, since (9/10)6=0.5314(9/10)^6 = 0.5314 but (9/10)7=0.4783(9/10)^7 = 0.4783. Multiples of 77 add a steady 17\tfrac17 on top, so the running buzz fraction climbs through 12\tfrac12 partway into the six-digit numbers. Tracking the cumulative count, it falls just short of half for the last time at n=708,587n = 708{,}587, so from N=708,588N = \boxed{708{,}588} onward at least half the numbers so far have always been buzzed. (The source’s value is behind its paywall; this is my own.)

The computation

Count up through the millions, tracking the cumulative buzzes, and record the last turn at which fewer than half the numbers so far were buzzed. The answer is one past it.

cum, last = 0, 0
for n in range(1, 5_000_001):
    if n % 7 == 0 or '7' in str(n): cum += 1
    if 2 * cum < n: last = n        # fewer than half buzzed so far
print(last + 1)                     # 708588 (no relapse out to 5,000,000)