25.04.2025

5227

# Среди натуральных чисел, не превышающих 10**7, найдите все числа, соответствующие
# маске 3*52?, у которых нечётное количество делителей. В ответе запишите в
# первом столбце таблицы все найденные числа в порядке возрастания, а во
# втором столбце – соответствующие им максимальные делители, не считая самого числа.
from fnmatch import *

def checkBinDels(n):
    if ((n**0.5) % 1 == 0):
        return True
    return False

def findLastDel(n):
    for i in range(n - 1, 1, -1):
        if ((n % i) == 0):
            return i;
for i in range(1, 10**7):
    a = str(i)
    if fnmatch(a, '3*52?') and checkBinDels(i):
        print(i, findLastDel(i))