Lecture Notes on 7 July 2014 import math # sum the digits of the number def sum_digits (n): sum = 0 while (n > 0): sum = sum + (n % 10) n = n // 10 return sum # reverse the digits def rev_digits (n): rev_num = 0 while (n > 0): rev_num = rev_num * 10 + n % 10 n = n // 10 return rev_num # check if a number is palindromic def is_palindromic (n): return (n == rev_digits (n)) # sum the proper divisors of a number def sum_div (n): sum_divisors = 0 limit = n // 2 + 1 for div in range (1, limit): if (n % div == 0): sum_divisors += div return sum_divisors # check if a number is prime def is_prime (n): limit = int (math.sqrt (n)) + 1 for div in range (2, limit): if (n % div == 0): return False return True def main(): ''' # prompt the user for a number n = eval (input ('Enter a number: ')) sum = sum_digits (n) print ('Sum of the digits = ', sum) rev_num = rev_digits (n) print ('Reverse of the number = ', rev_num) # check if the number is palindromic if (is_palindromic (n)): print (n_orig, 'is palindromic') else: print (n_orig, 'is not palindromic') # check if the number is a perfect number if (n == sum_div(n)): print (n, 'is perfect') else: print (n, 'is not perfect') # determine if the number is prime if (is_prime (n)): print (n, "is prime") else: print (n, "is not prime") ''' # get all cousin primes less than 1000 for n in range (2, 997): if (is_prime(n) and is_prime (n + 4)): print (n, n + 4) main()