
Andrew
By: a guest on Apr 25th, 2009 | syntax:
Python | size: 1.40 KB | hits: 77 | expires: Never
from math import sqrt
import string
class Fractions():
def decimalToFraction(self,dec):
dec = str(dec)
dec2 = dec.split(".")
dec3 = dec2[-1]
dec4 = len(dec3)
dec4 = int(dec4)
dec5 = dec4*"0"
dec6 = "1"+dec5
denominator = int(dec6)
newmoarator = int(dec3)
return denominator, newmoarator
def fractionReducer(self,numbertop,numberbottem):
list1 = []
list2 = []
for x in xrange(1,numbertop+1):
if numbertop % x == 0:
list1.append(x)
for x in xrange(1,numberbottem+1):
if numberbottem % x == 0:
list2.append(x)
list1len = len(list1)
list2len = len(list2)
target = list2[-1]
greatest = []
done = False
while done == False:
for x in range(list2len):
if list2[x] in list1:
greatest.append(list2[x])
done = True
numbertop = numbertop/greatest[-1]
numberbottem = numberbottem/greatest[-1]
return "fraction is: %s/%s" % (numbertop,numberbottem)
Frac = Fractions()
choice = raw_input("Choice 1 for decmial to reduced fraction, choose 2 for just reduced fraction: ")
if choice == "1":
dec = input("Enter a decimal: ")
bottom,top = Frac.decimalToFraction(dec)
print Frac.fractionReducer(top,bottom)
elif choice == "2":
frac = raw_input("Enter your fraction: ")
number=frac.split("/")
numbertop = int(number[0])
numberbottem = int(number[1])
print Frac.fractionReducer(numbertop, numberbottem)