Рассматриваются целые числа, принадлежащих числовому отрезку [416782; 498324], которые представляют собой произведение трёх различных простых делителей, оканчивающихся на одну и ту же цифру. В ответе запишите количество таких чисел и разницу между максимальным и минимальным из них. Числа запишите через пробел.
def is_prime(number): # функция для проверки простоты числа
if number == 1: return False
for div in range(2, int(number ** 0.5) + 1):
if number % div == 0:
return False
return True
def divs(x): # функция, которая возвращает список делителей числа
d = set()
for i in range(2,int(x**0.5)+1):
if x % i == 0:
d.add(i)
d.add(x//i)
return sorted(d)
ans = []
for x in range(416782,498325):
d = [i for i in divs(x) if is_prime(i)] # список, в котором хранятся только простые делители числа
if len(d) == 3:
if d[0] % 10 == d[1] % 10 == d[2]%10 and d[0]*d[1]*d[2] == x: # если все простые делители оканчиваются на одну цифру и их произведение равно числу
ans += [x]
print(len(ans),max(ans)-min(ans))
Ответ: 434 81412