#Mumps, 31 - 25 = 6 bytes
Mumps, 31 - 25 = 6 bytes
My submission was supposed to be unique (but I hadn't checked all of the answers yet) in that the basic "Assume 2x" code and the bonus-enabled code would work out to be the same length!
Basic code:
F J=1:1:28 W 1
Which is 14 bytes.
Here's the initial bonus-enabled code that takes input, anything that equates to '0' including any non-numeric input assumes 2, then outputs the correct number of output characters. This version is 39 bytes not including the bonus.
R I S:+I=0 I=2 F I=1:1:I F J=1:1:39 W 1
Calculating the bonus 39-25=14 bytes as well!
Too bad (for my narrative) that I looked it over and came up with a shorter version of the bonus code:
R I S:+I=0 I=2 F I=1:1:I*31 W 1
This is only 31 bytes long, so 31-25=6 bytes total, and the header reflects this.