def findDigitCancellingFractions(): digit_cancelling_fractions = [] for numerator in range(10,100): # since we are interested only in fractions having 2 digits in numerator and denominator. for denominator in range(10,100): # if value of fraction > 1 or if the units place of numerator or denominator has a 0, skip and go to next number. if ( (numerator/denominator >= 1) or (Common.getDigits(numerator)[1] == 0) or (Common.getDigits(denominator)[1] == 0)): pass else: if (Common.getDigits(numerator)[1] == Common.getDigits(denominator)[0]): # Units digit of numerator equals the tens digit of denominator # After digit cancelling, if value of incorrect fraction equals value of correct fraction, we have a winner. if (float(Common.getDigits(numerator)[0]) / float(Common.getDigits(denominator)[1]) == float(numerator)/float(denominator)): digit_cancelling_fractions.append((numerator,denominator)) # find the product of all 4 digit cancelling fractions product_numerator = 1 product_denominator = 1 # calculate the product of all numerators and denominators separately. for fract in digit_cancelling_fractions: product_numerator = product_numerator*fract[0] product_denominator = product_denominator*fract[1] # reduce the fraction to its lowest Common term reducedform = Common.reduceFractionToLowestCommonTerms((product_numerator,product_denominator)) return reducedform