aboutsummaryrefslogtreecommitdiff
path: root/challenge-142/roger-bell-west/python
diff options
context:
space:
mode:
authorDave Jacoby <jacoby.david@gmail.com>2021-12-07 17:08:53 -0500
committerDave Jacoby <jacoby.david@gmail.com>2021-12-07 17:08:53 -0500
commitf0230b0a58c8d2a63ba172c0c04ac75e5c80e0d4 (patch)
treea7162c0c01b282684f159edc35a2f940a8a77e38 /challenge-142/roger-bell-west/python
parent038f05c9243b83b2b654559b5005506bc6a3fc2b (diff)
parent59dd7ccf422a3b10f31e3ad2cc9a2704ce6b40e0 (diff)
downloadperlweeklychallenge-club-f0230b0a58c8d2a63ba172c0c04ac75e5c80e0d4.tar.gz
perlweeklychallenge-club-f0230b0a58c8d2a63ba172c0c04ac75e5c80e0d4.tar.bz2
perlweeklychallenge-club-f0230b0a58c8d2a63ba172c0c04ac75e5c80e0d4.zip
Merge branch 'master' of https://github.com/manwar/perlweeklychallenge-club
Diffstat (limited to 'challenge-142/roger-bell-west/python')
-rwxr-xr-xchallenge-142/roger-bell-west/python/ch-1.py35
-rwxr-xr-xchallenge-142/roger-bell-west/python/ch-2.py35
2 files changed, 70 insertions, 0 deletions
diff --git a/challenge-142/roger-bell-west/python/ch-1.py b/challenge-142/roger-bell-west/python/ch-1.py
new file mode 100755
index 0000000000..21808d0111
--- /dev/null
+++ b/challenge-142/roger-bell-west/python/ch-1.py
@@ -0,0 +1,35 @@
+#! /usr/bin/python3
+
+import unittest
+
+from math import sqrt
+from collections import deque
+
+def factor(n):
+ if n==1:
+ return [1]
+ ff=deque()
+ s=int(sqrt(n))
+ if s*s==n:
+ ff.append(s)
+ s-=1
+ for pf in range(2,s+1):
+ if n % pf == 0:
+ ff.appendleft(pf)
+ ff.append(int(n/pf))
+ ff.appendleft(1)
+ ff.append(n)
+ return ff
+
+def dld(m,n):
+ return len([i for i in factor(m) if i % 10 == n])
+
+class TestDld(unittest.TestCase):
+
+ def test_ex1(self):
+ self.assertEqual(dld(24,2),2,'example 1')
+
+ def test_ex2(self):
+ self.assertEqual(dld(30,5),2,'example 2')
+
+unittest.main()
diff --git a/challenge-142/roger-bell-west/python/ch-2.py b/challenge-142/roger-bell-west/python/ch-2.py
new file mode 100755
index 0000000000..f377b7678a
--- /dev/null
+++ b/challenge-142/roger-bell-west/python/ch-2.py
@@ -0,0 +1,35 @@
+#! /usr/bin/python3
+
+import unittest
+
+from random import randint
+import multiprocessing as mp
+from time import sleep
+
+def sleeper(x,q):
+ sleep(float(x)/500.0)
+ q.put(x)
+
+def sleepsort(n):
+ q=mp.SimpleQueue()
+ pq=[]
+ for i in n:
+ p=mp.Process(target=sleeper,args=(i,q))
+ p.start()
+ pq.append(p)
+ for p in pq:
+ p.join()
+ r=[]
+ while not q.empty():
+ r.append(q.get())
+ return r
+
+class TestSleepsort(unittest.TestCase):
+
+ def test_ex1(self):
+ a=[]
+ for i in range(10):
+ a.append(randint(1,100))
+ self.assertEqual(sleepsort(a),sorted(a),'example 1')
+
+unittest.main()