aboutsummaryrefslogtreecommitdiff
path: root/challenge-141/mohammad-anwar/python/ch-2.py
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-141/mohammad-anwar/python/ch-2.py')
-rw-r--r--challenge-141/mohammad-anwar/python/ch-2.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/challenge-141/mohammad-anwar/python/ch-2.py b/challenge-141/mohammad-anwar/python/ch-2.py
new file mode 100644
index 0000000000..96b013c73c
--- /dev/null
+++ b/challenge-141/mohammad-anwar/python/ch-2.py
@@ -0,0 +1,51 @@
+#!/usr/bin/python3
+
+'''
+
+Week 141:
+
+ https://theweeklychallenge.org/blog/perl-weekly-challenge-141
+
+Task #1: Like Numbers
+
+ You are given positive integers, $m and $n.
+
+ Write a script to find total count of integers created using the digits of $m which is also divisible by $n.
+
+'''
+
+from itertools import combinations
+import unittest
+
+def like_numbers(m, n):
+ numbers = []
+ m_digits = [int(a) for a in str(m)]
+
+ for i in range(1, len(m_digits)):
+ divisors = []
+ for j in combinations(m_digits, i):
+ num = int(''.join(str(x) for x in (j)))
+ if num % n == 0:
+ numbers.append(num)
+
+ return numbers
+
+#
+#
+# Unit test class
+
+class TestJortSort(unittest.TestCase):
+
+ def test_example_1(self):
+ self.assertEqual(
+ like_numbers(1234, 2),
+ [2, 4, 12, 14, 24, 34, 124, 134, 234],
+ 'Example 1')
+
+ def test_example_2(self):
+ self.assertEqual(
+ like_numbers(768, 4),
+ [8, 76, 68],
+ 'Example 2')
+
+unittest.main()