File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ """
2+ == Spy Number ==
3+ spy number is defined as a positive integer where the
4+ sum of its digits equals the product of its digits.
5+
6+ Examples of Spy Numbers: 22,123,1124,...
7+ https://www.scribd.com/document/895653665/Interesting-Number-Programs
8+ """
9+ def is_spy_number (number : int ) -> bool :
10+ """
11+ This functions takes an integer number as input.
12+ returns True if the number is spy.
13+ >>> is_spy_number(-1)
14+ False
15+ >>> is_spy_number(0)
16+ False
17+ >>> is_spy_number(22)
18+ True
19+ >>> is_spy_number(1124)
20+ True
21+ >>> is_spy_number(124)
22+ False
23+ >>> is_spy_number(5.0)
24+ Traceback (most recent call last):
25+ ...
26+ TypeError: Input value of [number=5.0] must be an integer
27+ """
28+ if not isinstance (number , int ):
29+ msg = f"Input value of [number={ number } ] must be an integer"
30+ raise TypeError (msg )
31+ if number <= 0 :
32+ return False
33+ digit_sum = 0
34+ digit_mul = 1
35+ while number > 0 :
36+ digit = number % 10
37+ digit_sum += digit
38+ digit_mul *= digit
39+ number //= 10
40+ if digit_sum == digit_mul :
41+ return True
42+ return False
43+
44+
45+ if __name__ == "__main__" :
46+ import doctest
47+
48+ doctest .testmod ()
You can’t perform that action at this time.
0 commit comments