def test_for_divisors(num):
return [num % x == 0 for x in range(1, num)]
def divisibility(num): #returns the ratio of integers up to a number that are a divisor of ut.
divcount = [num % x == 0 for x in range(1, num)]
div, notdiv = divcount.count(True), (divcount.count(False) + 1)
return div, notdiv
def list_of_divisibility(start, end): #appends each divisibility ratio into a list
return [divisibility(x) for x in range(start, end)]
def find_all_divisors(num):
divisors = set({})
for x in range(1, num):
if num % x == 0:
divisors.add(x)
return divisors
def find_all_nondivisors(num):
nondivisors = set({})
for x in range(1, num):
if num % x != 0:
nondivisors.add(x)
return nondivisors
def greatest_common_divisor(num1, num2): #finds the max divisor of both nums
return max([x for x in find_all_divisors(num1) and find_all_divisors(num2)])