def run(self): max = 1000000 primes = Helper.getPrimeSetLessThan(max)[0] prime_list = list(primes) prime_list.sort() for prime in prime_list: self.primeFactors[prime] = set([prime]) print(self.findDistinctPrimeFactors(510510, prime_list)) return max_n_over_phi = 0 for n in range(2, max + 1): if n % 10000 == 0: print("Current n = " + str(n)) distinctPrimeFactors = self.findDistinctPrimeFactors(n, prime_list) phi = n for prime in distinctPrimeFactors: phi = phi * (1 - (1.0 / prime)) #print(phi) n_over_phi = n / phi if n_over_phi > max_n_over_phi: print("Found new max:") print(" n = " + str(n)) print(" phi = " + str(phi)) print(" n / phi = " + str(n_over_phi)) max_n_over_phi = n_over_phi
def run(self): # Get a sequence of primes and a map for easy prime checking print("####") self.primes, self.maxPrime = Helper.getPrimeSetLessThan(100000000) print("####") print(str(len(self.primes))) print(str(self.maxPrime)) self.sequenceOfPrimes = [prime for prime in self.primes] self.sequenceOfPrimes.sort() print("####") primePairs = self.calculateGoodPrimePairs() print("calculated pairs...") primeTriplets = self.expandSets(primePairs, primePairs) print("calculated triplets...") primeQuadruplets = self.expandSets(primeTriplets, primePairs) print("calculated quadruplets...") primeFives = self.expandSets(primeQuadruplets, primePairs) print("calculated fives...") print("####") print(primeFives)
def run(self): max = 10000000 print("Finding initial primes...") primes = Helper.getPrimeSetLessThan(max)[0] prime_list = list(primes) prime_list.sort() for prime in prime_list: self.primeFactors[prime] = set([prime]) min_n_over_phi = 1.11 for n in range(2, max + 1): if n % 50000 == 0: print("Current n = " + str(n)) distinctPrimeFactors = self.findDistinctPrimeFactors(n, prime_list) phi = n for prime in distinctPrimeFactors: phi = phi * (1 - (1.0 / prime)) #print(phi) n_over_phi = n / phi if n_over_phi < min_n_over_phi: a = list(str(int(n))) b = list(str(int(phi))) a.sort() b.sort() if a == b: print("Found new min:") print(" n = " + str(n)) print(" phi = " + str(phi)) print(" n / phi = " + str(n_over_phi)) min_n_over_phi = n_over_phi