diff options
| author | Paulo Custodio <pauloscustodio@gmail.com> | 2021-12-06 14:55:30 +0000 |
|---|---|---|
| committer | Paulo Custodio <pauloscustodio@gmail.com> | 2021-12-06 14:55:30 +0000 |
| commit | cd04687f29d4ebea2fd5ec165585b21f2951f413 (patch) | |
| tree | 5c17b623d6b7a8cb803a4464f19d157152143e62 /challenge-141/roger-bell-west/python | |
| parent | fe57a0405720a40beaeb75100e069aaa13e4c49e (diff) | |
| parent | b9773f5c38387d865a093d2ecdfd1b01b4452c34 (diff) | |
| download | perlweeklychallenge-club-cd04687f29d4ebea2fd5ec165585b21f2951f413.tar.gz perlweeklychallenge-club-cd04687f29d4ebea2fd5ec165585b21f2951f413.tar.bz2 perlweeklychallenge-club-cd04687f29d4ebea2fd5ec165585b21f2951f413.zip | |
Merge branch 'master' into devel
Diffstat (limited to 'challenge-141/roger-bell-west/python')
| -rwxr-xr-x | challenge-141/roger-bell-west/python/ch-1.py | 36 | ||||
| -rwxr-xr-x | challenge-141/roger-bell-west/python/ch-2.py | 26 |
2 files changed, 62 insertions, 0 deletions
diff --git a/challenge-141/roger-bell-west/python/ch-1.py b/challenge-141/roger-bell-west/python/ch-1.py new file mode 100755 index 0000000000..b1e8726449 --- /dev/null +++ b/challenge-141/roger-bell-west/python/ch-1.py @@ -0,0 +1,36 @@ +#! /usr/bin/python3 + +import unittest + +from math import sqrt + +def factorcount(n): + if n==1: + return 1 + f=2 + s=int(sqrt(n)) + if s*s==n: + s-=1 + f+=1 + for pf in range(2,s+1): + if n % pf == 0: + f += 2 + return f + +def divisors(count,n): + nn=n + a=[] + t=0 + while nn: + t+=1 + if factorcount(t)==count: + a.append(t) + nn-=1 + return a + +class TestDivisors(unittest.TestCase): + + def test_ex1(self): + self.assertEqual(divisors(8,10),[24,30,40,42,54,56,66,70,78,88],'example 2') + +unittest.main() diff --git a/challenge-141/roger-bell-west/python/ch-2.py b/challenge-141/roger-bell-west/python/ch-2.py new file mode 100755 index 0000000000..1bcf983c5f --- /dev/null +++ b/challenge-141/roger-bell-west/python/ch-2.py @@ -0,0 +1,26 @@ +#! /usr/bin/python3 + +import unittest + +def likenumber(source,factor): + s=[int(i) for i in str(source)] + m=len(s) + n=0 + for mask in range(1,(1<<m)-1): + c=0 + for di in range(m): + if mask & 1<<di: + c=c*10+s[di] + if c % factor == 0: + n+=1 + return n + +class TestLikenumber(unittest.TestCase): + + def test_ex1(self): + self.assertEqual(likenumber(1234,2),9,'example 1') + + def test_ex2(self): + self.assertEqual(likenumber(768,4),3,'example 2') + +unittest.main() |
