'''
Данное задание укороченная версия 25го задания из второй части.
Гробов давать точно не будут. Задание уровня ОГЭ. Давайте писать
'''




print('>>>>>>')
#К.Ю.Поляков 2295
'''
Рассматривается множество целых чисел, принадлежащих отрезку [1512;13202],
которые делятся на 7 и не делятся на 11, 13, 17 и 23. Найдите количество
таких чисел и максимальное из них. В ответе запишите два числа через пробел:
сначала количество, затем максимальное число. 
'''


answer = [i for i in range(1512, 13202+1) if  (i % 7 == 0 and (i % 11 != 0) and \
    (i % 13 != 0) and (i % 17 != 0) and (i % 23 != 0) ) ]
print(len(answer), max(answer))

print('<<<<<<<<')
amount = 0
big = 0
for x in range(1512, 13202+1): # питоновский цикл не включает конец
    if x % 7 == 0:
        if x % 11 != 0:
            if x % 13 != 0: #УЖАСНЫЙ КОД
                if x % 17 != 0:
                    if x % 23 != 0:
                        amount+=1
                        big = max(big, x)
print(amount, big)






print('>>>>>>>')
#К.Ю.Поляков 3994
'''
Рассматривается множество целых чисел, принадлежащих числовому отрезку
[4616; 52311],которые удовлетворяют следующим условиям:
а) Сумма цифр равна 10.
б) Произведение цифр равно нулю.
Найдите количество таких чисел и минимальное из них. В ответе запишите
сначала количество, а затем минимальное из них. 
'''

count = 0
mina = float('inf')
for x in range(4616, 52311+1): #+1 ОБЯЗАТЕЛЬНО
    if sum(map(int, str(x))) == 10 and [i for i in list(map(int, str(x))) if i==0]:
        count +=1
        mina = min(x, mina)
print(count, mina)







print('>>>>>>>>')
#К.Ю.Поляков 3734
'''
Рассматривается множество целых чисел, принадлежащих числовому отрезку
[10; 9999] , которые удовлетворяют следующим условиям:
а) Число в двоичной записи оканчивается цифрой «1»;
б) Число в двоичной записи имеет ровно 5 нулей;
в) Число делится на 3 и на 11.
Найдите количество таких чисел и максимальное из них.
В ответе запишите сначала количество, а потом максимальное число. 
'''

k = 0
mak = float('-inf')
def f(x):
    new_x = bin(x)[2:]
    if new_x.count('0') == 5:
        return 1
    else:
        return 0
for i in range(10, 9999+1):
    if f(i) and i % 3 == 0 and i % 11 == 0 and i % 2 == 1:
        k+=1
        mak = max(mak, i)
print(k, mak)
# Последняя цифра числа – это остаток от деления этого числа на основание системы счисления.
'''
Например, 212_{3} = 2+1*3+2*3^{2} = 23_{10}. Разделим 23 на основание системы 3,
получим 7 и 2 в остатке (2 – это последняя цифра числа в троичной системе).
Разделим 23 на 9 (основание в квадрате), получим 18 и 5 в остатке (5 = 12_{3}).
https://ege-study.ru/ru/ege/materialy/informatika/zadacha-16-razbor-razlichnyx-tipov-zadach/
'''






print('>>>>>>')
#К.Ю.Поляков 4147
'''
Рассматривается множество целых чисел, принадлежащих числовому отрезку
[25552; 58885], которые имеют не менее 15 двузначных делителей.
Запишите в ответе сначала наибольшее из таких чисел, затем – их количество. 
'''
huge = 0
number_count = 0
for x in range(25552, 58885+1):
    q = int(x**0.5)
    d = set()
    for i in range(1, q+1):
        if x % i == 0:
            d.add(i)
            d.add(x//i)
    jou = 0
    for i in d:
        if len(str(i)) == 2:
            jou+=1
        if jou == 15:
            number_count+=1

            if huge < x:
                huge = x # поставьте == и поймите что произошло
                break
print(huge, number_count)
        



# =  оператор присваивания
# == оператор сравнения
# новички это постоянно путают, поэтому хотел обратить внимание
