Wikipedia
The McNuggets version of the coin problem was introduced by Henri Picciotto,
who included it in his algebra textbook co-authored with Anita Wah. Picciotto
thought of the application in the 1980s while dining with his son at
McDonald's, working the problem out on a napkin. A McNugget number is
the total number of McDonald's Chicken McNuggets in any number of boxes.
In the United Kingdom, the original boxes (prior to the introduction of
the Happy Meal-sized nugget boxes) were of 6, 9, and 20 nuggets.

Task

Calculate (from 0 up to a limit of 100) the largest non-McNuggets
number (a number n which cannot be expressed with 6x + 9y + 20z = n
where x, y and z are natural numbers).




% Recursive nugget iterator.
% This yields all the nugget numbers of the given box sizes from start to max.
gen_nuggets = iter (start, max: int, sizes: sequence[int]) yields (int) 
    si = sequence[int]
    if si$empty(sizes) then 
        yield(start)
    else
        for i: int in int$from_to_by(start, max, si$bottom(sizes)) do
            for j: int in gen_nuggets(i, max, si$reml(sizes)) do
                yield(j)
            end
        end
    end
end gen_nuggets
 
start_up = proc ()
    max = 100
    ab = array[bool]
    po: stream := stream$primary_output()
    nuggets: ab := ab$fill(0,max+1,false)
 
    for nugget: int in gen_nuggets(0, max, sequence[int]$[6,9,20]) do
        nuggets[nugget] := true
    end
 
    maxn: int
    for i: int in ab$indexes(nuggets) do
        if ~nuggets[i] then maxn := i end
    end
 
    stream$putl(po, "Maximum non-McNuggets number: " || int$unparse(maxn))
end start_up