#NEWLINE# def __init__( self , p , q = 1 ) : #NEWLINE# #INDENT# if ( not q ) : #NEWLINE# #INDENT# raise ZeroDivisionError ( 'rational number' ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( q < 0 ) : #NEWLINE# #INDENT# ( p , q ) = ( ( - p ) , ( - q ) ) #NEWLINE# #UNINDENT# #UNINDENT# if ( not p ) : #NEWLINE# #INDENT# self . p = 0 #NEWLINE# self . q = 1 #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( ( p == 1 ) or ( q == 1 ) ) : #NEWLINE# #INDENT# self . p = p #NEWLINE# self . q = q #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# ( x , y ) = ( x , q ) #NEWLINE# while y : #NEWLINE# #INDENT# ( x , y ) = ( y , ( x % y ) ) #NEWLINE# #UNINDENT# if ( x != 1 ) : #NEWLINE# #INDENT# p //= x #NEWLINE# q //= x #NEWLINE# #UNINDENT# self . p = p #NEWLINE# self . q = q