aboutsummaryrefslogtreecommitdiff
path: root/challenge-168/lubos-kolouch/python
diff options
context:
space:
mode:
authordrbaggy <js5@sanger.ac.uk>2022-06-10 14:00:41 +0100
committerdrbaggy <js5@sanger.ac.uk>2022-06-10 14:00:41 +0100
commit48c3a14d8d4e1f14aa4ea66ecc2bfd01e73690aa (patch)
treea23f0b2490969ccd2d78aea1feb9fcecdfd10616 /challenge-168/lubos-kolouch/python
parentb9b5afa16f9e06cec6f3dae7db65c9d08482d500 (diff)
parent8fc3ae23025949d2da0c49826fa13d714523c73e (diff)
downloadperlweeklychallenge-club-48c3a14d8d4e1f14aa4ea66ecc2bfd01e73690aa.tar.gz
perlweeklychallenge-club-48c3a14d8d4e1f14aa4ea66ecc2bfd01e73690aa.tar.bz2
perlweeklychallenge-club-48c3a14d8d4e1f14aa4ea66ecc2bfd01e73690aa.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'challenge-168/lubos-kolouch/python')
-rw-r--r--challenge-168/lubos-kolouch/python/ch-1.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/challenge-168/lubos-kolouch/python/ch-1.py b/challenge-168/lubos-kolouch/python/ch-1.py
new file mode 100644
index 0000000000..8c8790c5dc
--- /dev/null
+++ b/challenge-168/lubos-kolouch/python/ch-1.py
@@ -0,0 +1,39 @@
+""" Challenge 168 Task 1 LK Python """
+
+from sympy import isprime
+
+
+def generate_perrin_primes(n: int) -> list:
+ """
+ Generate all primes up to n using the Perrin sequence.
+ """
+ perrin_sequence = [3, 0, 2]
+
+ perrin_primes: dict = {}
+
+ while len(perrin_primes.keys()) < n:
+
+ next_number = perrin_sequence[-3] + perrin_sequence[-2]
+ perrin_sequence.append(next_number)
+
+ if isprime(next_number):
+ perrin_primes[next_number] = True
+
+ return sorted(perrin_primes.keys())
+
+
+assert generate_perrin_primes(13) == [
+ 2,
+ 3,
+ 5,
+ 7,
+ 17,
+ 29,
+ 277,
+ 367,
+ 853,
+ 14197,
+ 43721,
+ 1442968193,
+ 792606555396977,
+]