""" divisible_by_1_to_n.py Ask for an integer n. Then find and print the first integer divisible by 1 through n. (The brute force method here is *not* an efficient way to solve this problem.) programing class exercise, Jim Mahoney | Oct 3 2011 | GPL """ def x_is_divisible_by_y(x, y): """ Return True if x is divisible by y. >>> x_is_divisible_by_y(10, 3) False >>> x_is_divisible_by_y(10, 5) True """ return x % y == 0 def x_is_divisible_by_1_to_n(x, n): """ Return True if x is divisible by y. >>> x_is_divisible_by_y(10, 3) False >>> x_is_divisible_by_y(10, 5) True """ for i in range(1, n+1): if not x_is_divisible_by_y(x, i): return False return True def first_1_to_n_multiple(n): """ Return first integer divisible by 1 through n >>> first_1_to_n_multiple(3) 6 >>> first_1_to_n_multiple(10) 2520 """ x = n while True: if x_is_divisible_by_1_to_n(x, n): return x x = x + 1 def main(): n = input("What is n? (10) ") answer = first_1_to_n_multiple(n) print "%i is divisible by all the integers up to %i" % (answer, n) if __name__ == "__main__": import doctest doctest.testmod() main()