def main2(): semiprimes = create_semiprimes() numbers = set() # totient(n) is a permutation of n min_value = 100 min_n = 0 for semiprime in semiprimes: if is_perm(semiprime, totient(semiprime)): numbers.add(semiprime) for num in numbers: tmp = num / float(totient(num)) if tmp < min_value: min_value = tmp min_n = num print min_n
def main2(): max_value = 0 max_n = 0 for n in xrange(1, 1000001): value = n / float(totient(n)) if max_value < value: max_value = value max_n = n print max_n
def main1(): """This aproach is very slow.""" end = 10 ** 7 lowerbound = 2000 upperbound = 5000 numbers = list() # totient(n) is a permutation of n for i in xrange(2, end): if is_perm(i, totient(i)): numbers.append(i) print len(numbers)
def main(): max_d = 10 ** 6 print sum([totient(x) for x in range(1, max_d+1)]) - 1