def main(args): t = [1] for i in range(10): t.append(t[-1]*10) prime = PrimeNumberPool() ts1 = time.time() if args.test: max_r = t[9] for i in range(t[4]*1): prime.NewPrime() else: max_r = t[10] for i in range(t[4]*3): prime.NewPrime() ts2 = time.time() logger.debug("prepare primes takes {}s".format(ts2-ts1)) for i in range(len(prime.numbers)): if (i%2==1): continue p2 = prime.numbers[i]*prime.numbers[i] remainder = 2*(i+1)*prime.numbers[i] % p2 if (remainder > max_r): logger.debug((i+1, prime.numbers[i], remainder)) break answer = i+1 logger.info("answer: {}".format(answer))
def main(args): prime = PrimeNumberPool() r = 1000 for i in range(r): prime.NewPrime() pb = [] for b in prime.numbers: if (b < r): pb.append(b) pb.append(-b) pb.sort() max_cp = 30 ab = [] for a in range(-r, r): for b in pb: cp = cprime(a,b, prime) if (cp > max_cp): max_cp = cp ab = [a,b] logging.info(ab) logging.info(ab[0]*ab[1])
def main(args): prime = PrimeNumberPool() for i in range(10000): prime.NewPrime() prime_num4 = [] for p in prime.numbers: if (p > 1000 and p < 10000): prime_num4.append(p) pn4_perm = {} pn4_ps = set() for i in range(len(prime_num4) - 1): p = prime_num4[i] if (p in pn4_ps): continue for j in range(i + 1, len(prime_num4)): q = prime_num4[j] if (q in pn4_ps): continue if (IsPermute(p, q)): pn4_ps.add(p) pn4_ps.add(q) if (p in pn4_perm): pn4_perm[p].append(q) else: pn4_perm[p] = [p, q] for p in list(pn4_perm.keys()): ps = pn4_perm[p] if (len(ps) < 3): continue if (IsArithSeq3(ps)): logging.info(ps) logging.info(IsArithSeq3(ps))
def main(args): prime = PrimeNumberPool() for i in range(80000): prime.NewPrime() all_prime = set(prime.numbers) truncatable_prime = [] for p in all_prime: if (p < 11): continue if (is_tr_prime(p, all_prime)): truncatable_prime.append(p) logging.debug(truncatable_prime) logging.info(sum(truncatable_prime))
def main(args): prime = PrimeNumberPool() cprime = set() ts1 = time.time() m = 2000 for i in range(m): prime.NewPrime() pm = prime.numbers[:m] ts2 = time.time() logging.debug("time for build primes {}".format(ts2 - ts1)) for i in range(m): p1 = pm[i] for j in range(i, m): p2 = pm[j] if (not prime.IsPrime(CatNum(p1, p2))): continue if (not prime.IsPrime(CatNum(p2, p1))): continue cprime.add((p1, p2)) logging.debug(len(cprime)) ts3 = time.time() logging.debug("time for build prime pairs {}".format(ts3 - ts2)) for (p1, p2) in cprime: for p3 in pm: if (p3 <= p2): continue if (not Check(p3, [p1, p2], cprime)): continue for p4 in pm: if (p4 <= p3): continue if (not Check(p4, [p1, p2, p3], cprime)): continue for p5 in pm: if (p5 <= p4): continue if (not Check(p5, [p1, p2, p3, p4], cprime)): continue logging.info((p1, p2, p3, p4, p5)) logging.info("result: {}".format(sum([p1, p2, p3, p4, p5]))) return 0
def main(args): description = ''' 10001st prime Problem 7 By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13. What is the 10 001st prime number? ''' primes = PrimeNumberPool() if args.test: logging.info('Running test...') idx = 6 - 1 else: idx = 10001 - 1 num_primes = primes.NumberOfPrimes() for i in range(idx + 1 - num_primes): primes.NewPrime() result = primes.numbers[idx] solution = 'result: {}'.format(result) logging.info(solution)