Beispiel #1
0
def checkPerfectPower(power, value, returnRoot=False):
    inputValue = validateInteger(value)
    inputPower = validateInteger(power)

    if returnRoot:
        from root import getRoot

    result = "False"

    for i in range(abs(inputValue)):
        if i ** inputPower == abs(inputValue):
            result = "True\n" + str(getRoot(inputPower, inputValue, True)) if returnRoot else "True"

    return result
Beispiel #2
0
def getFactors(numberToFactor):
    numberToFactor = common.validateInteger(numberToFactor)
    factorList = []
    numberToTry = 1
    while numberToTry <= numberToFactor:
        if numberToFactor % numberToTry == 0:
            factorList.append(numberToTry)
        numberToTry += 1
    return factorList
Beispiel #3
0
def getFactorPairs(input):
    num = validateInteger(input)
    factors = getFactors(num)

    if len(factors) % 2 != 0:
        factors.insert(factors.index(getRoot(2, num)), int(getRoot(2, num)))

    h = int(len(factors) / 2)

    a = factors[:h]
    b = factors[h:]
    b.reverse()

    return list(map(lambda x: (a[x], b[x]), range(0, len(a))))
Beispiel #4
0
 def test_validate_None_to_int(self):
     result = common.validateInteger(None)
     self.assertEqual(result, 0)
Beispiel #5
0
 def test_validate_empty_string_to_int(self):
     result = common.validateInteger("")
     self.assertEqual(result, 0)
Beispiel #6
0
 def test_validate_float_to_int(self):
     result = common.validateInteger(5.5)
     self.assertEqual(result, 55)
Beispiel #7
0
 def test_validate_bad_int_in_string_to_int(self):
     result = common.validateInteger("efhweh5eih,/!#$%^&*()-_[];:")
     self.assertEqual(result, 5)
Beispiel #8
0
 def test_validate_int_in_string_to_int(self):
     result = common.validateInteger("5")
     self.assertEqual(result, 5)
Beispiel #9
0
from common import validateInteger
from common import validateFloat


def getRoot(root, radicand, perfect=False):
    if radicand >= 0:
        result = radicand**(1. / validateFloat(root))
    else:
        result = -(-radicand)**(1. / validateFloat(root))

    if perfect:
        return round(result)
    else:
        return result


if __name__ == "__main__":
    try:
        root = validateInteger(argv[1])
        radicand = validateInteger(argv[2])

    except IndexError:
        print("Usage: root.py root radicand [perfect]")

    try:
        perfect = True if argv[3].lower() == "perfect" else False
    except IndexError:
        perfect = False

    print(str(getRoot(root, radicand, perfect)))
Beispiel #10
0
    inputValue = validateInteger(value)
    inputPower = validateInteger(power)

    if returnRoot:
        from root import getRoot

    result = "False"

    for i in range(abs(inputValue)):
        if i ** inputPower == abs(inputValue):
            result = "True\n" + str(getRoot(inputPower, inputValue, True)) if returnRoot else "True"

    return result

if __name__ == "__main__":
    try:
        power = validateInteger(argv[1])
        base = validateInteger(argv[2])
    except IndexError:
        print("Usage: perfect.py exponent number [root]")
        exit()
    
    root = False

    try:
        if argv[3].lower() == "root":
            root = True
    except IndexError:
        pass

    print(checkPerfectPower(power, base, root))
Beispiel #11
0
def doFactoring():
    numberToTry = 1
    while numberToTry <= input:
        if input % numberToTry == 0:
            factorList.append(numberToTry)
        numberToTry += 1


def getFactors(numberToFactor):
    numberToFactor = common.validateInteger(numberToFactor)
    factorList = []
    numberToTry = 1
    while numberToTry <= numberToFactor:
        if numberToFactor % numberToTry == 0:
            factorList.append(numberToTry)
        numberToTry += 1
    return factorList


#Main program logic
if __name__ == "__main__":
    try:
        input = common.validateInteger(sys.argv[1])
    except IndexError:
        print("Usage: factor.py number")
        exit(1)

    doFactoring()
    printResult()
    factorList = []
    input = 0