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 <rep...@bugs.python.org>
<http://bugs.python.org/issue22238>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to