diff options
Diffstat (limited to 'challenge-144/roger-bell-west/python/ch-1.py')
| -rwxr-xr-x | challenge-144/roger-bell-west/python/ch-1.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/challenge-144/roger-bell-west/python/ch-1.py b/challenge-144/roger-bell-west/python/ch-1.py new file mode 100755 index 0000000000..34a6e6d424 --- /dev/null +++ b/challenge-144/roger-bell-west/python/ch-1.py @@ -0,0 +1,35 @@ +#! /usr/bin/python3 + +import unittest + +def semiprime(mx): + mxx=int(mx/2) + primesh=set(range(2,mxx+1)) + p=2 + while p*p <= mxx: + if p in primesh: + for i in range(p*p,mx+1,p): + primesh.discard(i) + if p==2: + p -= 1 + p += 2 + primes=list(primesh) + primes.sort() + semiprimesh=set() + for i in range(len(primes)): + for j in range(i,len(primes)): + t=primes[i]*primes[j] + if t <= mx: + semiprimesh.add(t) + else: + break + semiprimes=list(semiprimesh) + semiprimes.sort() + return semiprimes + +class TestSemiprime(unittest.TestCase): + + def test_ex1(self): + self.assertEqual(semiprime(100),[4, 6, 9, 10, 14, 15, 21, 22, 25, 26, 33, 34, 35, 38, 39, 46, 49, 51, 55, 57, 58, 62, 65, 69, 74, 77, 82, 85, 86, 87, 91, 93, 94, 95],'example 1') + +unittest.main() |
