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 -- https://mail.python.org/mailman/listinfo/python-list