Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
– символ «?» означает ровно одну произвольную цифру;
– символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
Например, маске 123*4?5 соответствуют числа 123405 и 12300405.
Среди натуральных чисел, не превышающих , найдите все числа, которые являются полными квадратами, соответствуют маске 82??9* и имеют более 25 делителей.
В ответ запишите найденные числа в порядке возрастания через пробел.
for x in range(10**4, 10**8+1):
c = set()
s = str(x)
if s[:2] == ’82’ and s[4] == ’9’ and x**0.5 == int(x**0.5): # проверка, что число соответствует маске и что у числа есть целый корень, только у таких чисел нечётное кол-во делителей
for i in range(1, int(x**0.5)+1):
if x % i == 0:
c.add(i)
c.add(x//i)
if len(c) > 25:
print(x)
Ответ: 8236900 82119844 82519056 82719025 82919236