aboutsummaryrefslogtreecommitdiff
path: root/challenge-139/sgreen/python
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-11-20 08:12:22 +0000
committerGitHub <noreply@github.com>2021-11-20 08:12:22 +0000
commit2826e59686648edf5be0906de1c9470978a98187 (patch)
treee4905617e0379586c82b78eb54079ced72e4695c /challenge-139/sgreen/python
parentea83790fdf3c76091e38faaf27cade5240780104 (diff)
parentcaba8c35b04f4f90f507b9ae100b8e1aadd4b1dd (diff)
downloadperlweeklychallenge-club-2826e59686648edf5be0906de1c9470978a98187.tar.gz
perlweeklychallenge-club-2826e59686648edf5be0906de1c9470978a98187.tar.bz2
perlweeklychallenge-club-2826e59686648edf5be0906de1c9470978a98187.zip
Merge pull request #5250 from simongreen-net/swg-139
sgreen solutions to challenge 139
Diffstat (limited to 'challenge-139/sgreen/python')
-rwxr-xr-xchallenge-139/sgreen/python/ch-1.py21
-rwxr-xr-xchallenge-139/sgreen/python/ch-2.py43
2 files changed, 64 insertions, 0 deletions
diff --git a/challenge-139/sgreen/python/ch-1.py b/challenge-139/sgreen/python/ch-1.py
new file mode 100755
index 0000000000..6f27eb1b31
--- /dev/null
+++ b/challenge-139/sgreen/python/ch-1.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python
+
+import sys
+
+
+def main(strings):
+ # Convert to numbers
+ nums = [float(x) for x in strings]
+ sorted = 1
+
+ for i in range(1, len(nums)):
+ # If the value is less than the previous, the array is not sorted
+ if nums[i] < nums[i - 1]:
+ sorted = 0
+ break
+
+ print(f"{sorted}")
+
+
+if __name__ == '__main__':
+ main(sys.argv[1:])
diff --git a/challenge-139/sgreen/python/ch-2.py b/challenge-139/sgreen/python/ch-2.py
new file mode 100755
index 0000000000..a4023acee6
--- /dev/null
+++ b/challenge-139/sgreen/python/ch-2.py
@@ -0,0 +1,43 @@
+#!/usr/bin/env python
+
+import math
+
+
+def is_prime(number):
+ for i in range(2, int(math.sqrt(number)) + 1):
+ if number % i == 0:
+ return False
+
+ return True
+
+
+def long_division(number):
+ digits = 0
+
+ r = 10 % number
+ seen = {r: 1}
+
+ while 1:
+ digits += 1
+ r = (10 * r) % number
+ if r in seen:
+ return digits
+ seen[r] = 1
+
+
+def main():
+ number = 2
+ solutions = []
+
+ while 1:
+ number += 1
+ if is_prime(number) and long_division(number) == number - 1:
+ solutions.append(number)
+ if len(solutions) == 5:
+ break
+
+ print(*solutions, sep=', ')
+
+
+if __name__ == '__main__':
+ main()