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
def getFactors(numberToFactor): numberToFactor = common.validateInteger(numberToFactor) factorList = [] numberToTry = 1 while numberToTry <= numberToFactor: if numberToFactor % numberToTry == 0: factorList.append(numberToTry) numberToTry += 1 return factorList
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))))
def test_validate_None_to_int(self): result = common.validateInteger(None) self.assertEqual(result, 0)
def test_validate_empty_string_to_int(self): result = common.validateInteger("") self.assertEqual(result, 0)
def test_validate_float_to_int(self): result = common.validateInteger(5.5) self.assertEqual(result, 55)
def test_validate_bad_int_in_string_to_int(self): result = common.validateInteger("efhweh5eih,/!#$%^&*()-_[];:") self.assertEqual(result, 5)
def test_validate_int_in_string_to_int(self): result = common.validateInteger("5") self.assertEqual(result, 5)
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)))
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))
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