Guest

Andrew

By: a guest on Apr 25th, 2009  |  syntax: Python  |  size: 1.40 KB  |  hits: 77  |  expires: Never
download  |  raw  |  embed  |  report abuse
This paste has a previous version, view the difference. Copied
  1. from math import sqrt
  2. import string
  3.  
  4. class Fractions():
  5.        
  6.         def decimalToFraction(self,dec):
  7.                 dec = str(dec)
  8.                 dec2 = dec.split(".")
  9.                 dec3 = dec2[-1]
  10.                 dec4 = len(dec3)
  11.                 dec4 = int(dec4)
  12.                 dec5 = dec4*"0"
  13.                 dec6 = "1"+dec5
  14.                 denominator = int(dec6)
  15.                 newmoarator = int(dec3)
  16.                 return denominator, newmoarator
  17.        
  18.         def fractionReducer(self,numbertop,numberbottem):
  19.                 list1 = []
  20.                 list2 = []
  21.                 for x in xrange(1,numbertop+1):
  22.                         if numbertop % x == 0:
  23.                                 list1.append(x)
  24.  
  25.                 for x in xrange(1,numberbottem+1):
  26.                         if numberbottem % x == 0:
  27.                                 list2.append(x)
  28.  
  29.                 list1len = len(list1)
  30.                 list2len = len(list2)
  31.                 target = list2[-1]
  32.                 greatest = []
  33.                 done = False
  34.                 while done == False:
  35.                         for x in range(list2len):
  36.                                 if list2[x] in list1:
  37.                                         greatest.append(list2[x])      
  38.                         done = True
  39.        
  40.                 numbertop = numbertop/greatest[-1]
  41.                 numberbottem = numberbottem/greatest[-1]
  42.  
  43.                 return "fraction is:  %s/%s" % (numbertop,numberbottem)
  44.                
  45. Frac = Fractions()
  46. choice = raw_input("Choice 1 for decmial to reduced fraction, choose 2 for just reduced fraction: ")
  47. if choice == "1":
  48.         dec = input("Enter a decimal: ")
  49.         bottom,top = Frac.decimalToFraction(dec)
  50.         print Frac.fractionReducer(top,bottom)
  51. elif choice == "2":
  52.         frac = raw_input("Enter your fraction: ")
  53.         number=frac.split("/")
  54.         numbertop = int(number[0])
  55.         numberbottem = int(number[1])
  56.         print Frac.fractionReducer(numbertop, numberbottem)