From 3ffc76713f6db4c33f20588ce6896ea3c2bae2a7 Mon Sep 17 00:00:00 2001 From: Charles Date: Sat, 17 Aug 2019 21:39:43 +0200 Subject: wip directory for each language --- python/wip/023-non_abudant_sums.py | 16 ++++++++++++++ python/wip/026-reciprocal_cycles.py | 5 +++++ python/wip/027-quadratic_primes.py | 17 +++++++++++++++ python/wip/031-coin_sums.py | 12 +++++++++++ python/wip/037-truncatable_primes.py | 25 ++++++++++++++++++++++ .../wip/045-triangular_pentagonal_and_hexagonal.py | 9 ++++++++ python/wip/047-distinct_primes_factors.py | 20 +++++++++++++++++ python/wip/049-prime_permutations.py | 23 ++++++++++++++++++++ 8 files changed, 127 insertions(+) create mode 100644 python/wip/023-non_abudant_sums.py create mode 100644 python/wip/026-reciprocal_cycles.py create mode 100644 python/wip/027-quadratic_primes.py create mode 100644 python/wip/031-coin_sums.py create mode 100644 python/wip/037-truncatable_primes.py create mode 100644 python/wip/045-triangular_pentagonal_and_hexagonal.py create mode 100644 python/wip/047-distinct_primes_factors.py create mode 100644 python/wip/049-prime_permutations.py (limited to 'python/wip') diff --git a/python/wip/023-non_abudant_sums.py b/python/wip/023-non_abudant_sums.py new file mode 100644 index 0000000..6e3eea2 --- /dev/null +++ b/python/wip/023-non_abudant_sums.py @@ -0,0 +1,16 @@ +# def getAllDivisorOf(num): +# divisor_list = [] +# for i in range(1, num): +# if num % i == 0: +# divisor_list.append(i) +# return divisor_list + + +# for num in range(1, 28123 + 1): +# pass + +# for i in range(3): +# for j in range(3): +# for k in range(3): +# if i != j and i != k and j != k: +# print(i, j, k) diff --git a/python/wip/026-reciprocal_cycles.py b/python/wip/026-reciprocal_cycles.py new file mode 100644 index 0000000..b502c9a --- /dev/null +++ b/python/wip/026-reciprocal_cycles.py @@ -0,0 +1,5 @@ +from decimal import Decimal + +for i in range(1, 11): + # decimals = int(str(1/i)[2:]) + print(d) diff --git a/python/wip/027-quadratic_primes.py b/python/wip/027-quadratic_primes.py new file mode 100644 index 0000000..8b21cc6 --- /dev/null +++ b/python/wip/027-quadratic_primes.py @@ -0,0 +1,17 @@ +from itertools import count +from helper.prime import is_prime + + +ab_iter = [(a, b) for b in range(1_001) for a in range(1_000)] + +max_product = 0 +max_prime_seq = 0 +for a, b in ab_iter: + for n in count(): + if (not is_prime(n**2 + a*n + b)) and n > max_prime_seq: + max_prime_seq = n + max_product = a * b + print(max_product) + break + + diff --git a/python/wip/031-coin_sums.py b/python/wip/031-coin_sums.py new file mode 100644 index 0000000..c9a823d --- /dev/null +++ b/python/wip/031-coin_sums.py @@ -0,0 +1,12 @@ +coins = [200, 100, 50, 20, 10, 5, 2, 1] + +TOTAL = 200 +coin_index = 0 +combinations = [200] +combination_nb = 1 +while True: + if sum(combinations) == 200: + coin_index += 1 + combinations[0] = coins[coin_index] + + diff --git a/python/wip/037-truncatable_primes.py b/python/wip/037-truncatable_primes.py new file mode 100644 index 0000000..1ad7d29 --- /dev/null +++ b/python/wip/037-truncatable_primes.py @@ -0,0 +1,25 @@ +from helper.prime import primes_loop, is_prime + + +def is_truncatable(prime): + p_str = str(prime) + for i in range(1, len(p_str)): + if not is_prime(int(p_str[i:])): + return False + for i in range(1, len(p_str)): + if not is_prime(int(p_str[:-i])): + return False + if prime in [2, 3, 5, 7]: + return False + return True + + +trunc_p_list = [] +for p in primes_loop(): + if is_truncatable(p): + trunc_p_list.append(p) + if len(trunc_p_list) == 11: + break + +print(trunc_p_list) +print(sum(trunc_p_list)) diff --git a/python/wip/045-triangular_pentagonal_and_hexagonal.py b/python/wip/045-triangular_pentagonal_and_hexagonal.py new file mode 100644 index 0000000..5fba8f8 --- /dev/null +++ b/python/wip/045-triangular_pentagonal_and_hexagonal.py @@ -0,0 +1,9 @@ +from itertools import count +from helper.numbers import triangular, is_pentagonal, is_hexagonal + + +for i in count(286): + t = triangular(i) + if is_pentagonal(t) and is_hexagonal(t): + print(t) + break diff --git a/python/wip/047-distinct_primes_factors.py b/python/wip/047-distinct_primes_factors.py new file mode 100644 index 0000000..ac09b9a --- /dev/null +++ b/python/wip/047-distinct_primes_factors.py @@ -0,0 +1,20 @@ +from itertools import count +from helper.prime import get_prime_factors, primes_loop + +# TROP LENT + +def as_four_distinct_prime_factors(num): + return len(set(get_prime_factors(num))) == 3 + +def check_next_three(num): + for i in range(1, 3): + if not as_four_distinct_prime_factors(num + i): + return False + return True + + +for num in primes_loop(): + if as_four_distinct_prime_factors(num): + if check_next_three(num): + print(num) + break diff --git a/python/wip/049-prime_permutations.py b/python/wip/049-prime_permutations.py new file mode 100644 index 0000000..d90754e --- /dev/null +++ b/python/wip/049-prime_permutations.py @@ -0,0 +1,23 @@ +from itertools import permutations +from helper.prime import is_prime + + +def constant_inscrease(perms): + + + +def get_prime_permutations(nb): + return sorted([ + int(''.join(x)) + for x in permutations(str(nb), 4) + if (is_prime(int(''.join(x))) + and len(str(int(''.join(x)))) == 4) + ]) + +# print(get_prime_permutations(1487)) +for i in range(1000, 10_000): + if not is_prime(i): + continue + print(get_prime_permutations(i)) +# if all([is_prime(p) for p in permutations]): +# print(sorted(permutations)) -- cgit