Beispiel #1
0
    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
Beispiel #2
0
 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)
Beispiel #3
0
    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