22 lines
793 B
Text
22 lines
793 B
Text
BEGIN
|
|
# Solve the McNuggets problem: find the largest n <= 100 for which there #
|
|
# are no non-negative integers x, y, z such that 6x + 9y + 20z = n #
|
|
INT max nuggets = 100;
|
|
[ 0 : max nuggets ]BOOL sum;
|
|
FOR i FROM LWB sum TO UPB sum DO sum[ i ] := FALSE OD;
|
|
FOR x FROM 0 BY 6 TO max nuggets DO
|
|
FOR y FROM x BY 9 TO max nuggets DO
|
|
FOR z FROM y BY 20 TO max nuggets DO
|
|
sum[ z ] := TRUE
|
|
OD # z #
|
|
OD # y #
|
|
OD # x # ;
|
|
# show the highest number that cannot be formed #
|
|
INT largest := max nuggets;
|
|
WHILE sum[ largest ] DO largest -:= 1 OD;
|
|
print( ( "The largest non McNugget number is: "
|
|
, whole( largest, 0 )
|
|
, newline
|
|
)
|
|
)
|
|
END
|