grimoire/python/number.py

35 lines
836 B
Python
Raw Normal View History

2024-05-01 11:55:17 +00:00
# https://web.archive.org/web/20180612183650if_/https://github.com/jorgegonzalez/beginner-projects#whats-my-number
import collections
2024-05-02 17:44:27 +00:00
def prime(number):
for factor in range(2, number):
if number % factor == 0:
return False
return True
2024-05-01 11:55:17 +00:00
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):
2024-05-02 17:44:27 +00:00
if number > 9 and prime(number):
yield number, shatter(number)
2024-05-01 11:55:17 +00:00
for number, digits in numbers():
2024-05-02 17:44:27 +00:00
if digits[-1] != len(digits) or (digits[0] + digits[1]) % 2 == 0:
2024-05-01 11:55:17 +00:00
continue
2024-05-02 17:44:27 +00:00
elif sum(digits) > 10 or digits[-2] % 2 != 0 or digits[-2] < 2:
2024-05-01 11:55:17 +00:00
continue
2024-05-02 17:44:27 +00:00
elif len([digit for digit in digits if digit in [1, 7]]) > 0:
2024-05-01 11:55:17 +00:00
continue
print(number)