# # n/phi(n) is a maximum, if phi(n) is minimal # # phi(n) = n*(1-1/p1)*(1-1/p2)*...*(1-1/pi) # n/phi(n) = 1/((1-1/p1)*(1-1/p2)*...*(1-1/pi)) # -> smallest primes # from common import sieve primes = sieve(100).primes() prime_list = [ x for x in primes ] prime_list.sort() x = 1 for p in prime_list: if x*p > 1000000: break x *= p print x