From 4b1c4fc7e1809c724d3d994f0de6d97c4a14b415 Mon Sep 17 00:00:00 2001 From: Abigail Date: Sun, 16 Jan 2022 13:28:01 +0100 Subject: Week 147: Python solutions --- challenge-147/abigail/python/ch-1.py | 37 ++++++++++++++++++++++++++++++++++++ challenge-147/abigail/python/ch-2.py | 29 ++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 challenge-147/abigail/python/ch-1.py create mode 100644 challenge-147/abigail/python/ch-2.py (limited to 'challenge-147/abigail/python') diff --git a/challenge-147/abigail/python/ch-1.py b/challenge-147/abigail/python/ch-1.py new file mode 100644 index 0000000000..cd317b880b --- /dev/null +++ b/challenge-147/abigail/python/ch-1.py @@ -0,0 +1,37 @@ +#!/usr/local/bin/python3 + +# +# See https://theweeklychallenge.org/blog/perl-weekly-challenge-147 +# + +# +# Run as: python ch-1.py +# + +import sys +from sympy import isprime + +todo = [2, 3, 5, 7] +[sys . stdout . write (str (x) + " ") for x in todo] +count = 20 - len (todo) + +pow = 10 +while count > 0: + new_todo = [] + for d in range (1, 10): + for p in todo: + candidate = d * pow + p + if isprime (candidate): + sys . stdout . write (str (candidate) + " ") + count = count - 1 + new_todo . append (candidate) + if count <= 0: + break + if count <= 0: + break + if count <= 0: + break + todo = new_todo + pow = pow * 10 + +sys . stdout . write ("\n") diff --git a/challenge-147/abigail/python/ch-2.py b/challenge-147/abigail/python/ch-2.py new file mode 100644 index 0000000000..9d8ae317b3 --- /dev/null +++ b/challenge-147/abigail/python/ch-2.py @@ -0,0 +1,29 @@ +#!/usr/local/bin/python3 + +# +# See https://theweeklychallenge.org/blog/perl-weekly-challenge-147 +# + +# +# Run as: python ch-2.py +# + +pentagon = {} +p = 0 +n = 0 +done = False + + +while not done: + p = p + n + n + n + 1 + n = n + 1 + pentagon [p] = True + + for seen in pentagon: + if seen + seen <= p and (p - seen) in pentagon \ + and (p - seen - seen) in pentagon: + print (seen, p - seen) + done = True + break + if done: + break -- cgit