On Monday, March 25, 2019 at 2:07:11 PM UTC-4, Bassam Abdul-Baki wrote: > Greetings, > > In the following code, there's a bug on certain parameters. > > ---------- > > def per(n, steps = 0): > digits = [int(i) for i in str(n)] > result = 1 > for j in digits: > result *= j > steps += 1 > print(steps, result, sep=" - ") > if result == 0: > print(result, str(result), len(str(result)), sep=" - ") > if len(str(result)) == 1: > print(" --- DONE ---") > return "DONE" > else: > per(result, steps) > > ---------- > > What the program does: > If I run per(X) and X is a multiple of 10, I should end up with 0 in a > finite amount of steps. > > The problem: > If I run per(54), I do not get 'DONE' printed through the return > statement. WRONG! > > If I run per(20), I do get 'DONE' printed through the return statement. > CORRECT! > > 20, 30, etc. are correct. 25, 45, etc. are not. > > Is this a bug? > > Thanks, > Bassam
I dunno -- https://mail.python.org/mailman/listinfo/python-list