From bb067ceffef5e4a659c9bea0730d9a34c0e87267 Mon Sep 17 00:00:00 2001 From: Nick Chambers Date: Wed, 1 May 2024 06:55:17 -0500 Subject: [PATCH] Guess a number given specific criteria --- python/number.py | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 python/number.py diff --git a/python/number.py b/python/number.py new file mode 100644 index 0000000..a51ed90 --- /dev/null +++ b/python/number.py @@ -0,0 +1,41 @@ +# https://web.archive.org/web/20180612183650if_/https://github.com/jorgegonzalez/beginner-projects#whats-my-number + +import collections + +def shatter(number): + digits = collections.deque() + + while number > 0: + digits.insert(0, number % 10) + number = int(number / 10) + + return digits + +def numbers(min=1, max=1000): + for number in range(min, max + 1): + yield number, shatter(number) + +def prime(number): + for factor in range(2, number): + if number % factor == 0: + return False + + return True + +for number, digits in numbers(): + if len(digits) < 2: + continue + elif not prime(number): + continue + elif len([digit for digit in digits if digit == 1 or digit == 7]) > 0: + continue + elif sum(digits) > 10: + continue + elif (digits[0] + digits[1]) % 2 == 0: + continue + elif digits[-2] < 2 or digits[-2] % 2 != 0: + continue + elif digits[-1] != len(digits): + continue + + print(number)