[New-bugs-announce] [issue22238] fractions.gcd results in infinite loop when nan or inf given as parameter.

Robert Snoeberger report at bugs.python.org
Wed Aug 20 19:31:43 CEST 2014


New submission from Robert Snoeberger:

>>> import fractions
>>> fractions.gcd(16, float('inf'))
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    fractions.gcd(16, float('inf'))
  File "C:\Python34-32bit\lib\fractions.py", line 24, in gcd
    a, b = b, a%b
KeyboardInterrupt
>>> fractions.gcd(16, float('nan'))
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    fractions.gcd(16, float('nan'))
  File "C:\Python34-32bit\lib\fractions.py", line 24, in gcd
    a, b = b, a%b
KeyboardInterrupt
>>> 

With the iterative algorithm that is used 

a, b = b, a%b

b converges to float('nan'). It will never become 0 to break out of the loop. It might be nice to error when the iteration has converged b to a value other than 0.

----------
components: Library (Lib)
messages: 225576
nosy: snoeberger
priority: normal
severity: normal
status: open
title: fractions.gcd results in infinite loop when nan or inf given as parameter.
type: enhancement
versions: Python 3.4

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue22238>
_______________________________________


More information about the New-bugs-announce mailing list