`bugs * 1.5`

is a floating-point
operation because of the floating-point operand
(`1.5`

), which you convert back to an
integer. Note `bugs * 2`

and ```
bugs
* 1
```

are integer operations, because of the
integer operands.

It is always increasing, at an exponential rate
(`bugs = int(bugs * 1.5)`

).

Eventually `bugs`

will be an integer
large enough such that `bugs * 1.5`

will exceed the maximum allowable value of a
floating-point number, and thus will be
"infinity". Then you try to convert that back to
an integer, hence the error message, which is
accurate.

`bugs * 2`

(integer operation as
mentioned) works because there is no concept of
"infinity" or an overflow error for integers.
`bugs * 1`

, of course, just runs
forever. `bugs * 2.0`

, however, would
fail.