Итак, нужно найти число групп, в каждой из которых ни одно из чисел не делит все остальные.Строим группы так:(1) - 1(2) - 2, 3, 5, 7, 11, 13... - все простые(3) - 4, 6, 9, 10, 14, 15... - произведения двух простых ...(k) - произведения (k - 1) простыхИ так пока не кончатся все числа. Поскольку в каждой группе наименьшее число 2^(k - 1), то k - минимальное, для которого 2^(k - 1) > NПо построению явно во всех группах ни одно число не делится на другое. Осталось проверить, что получено минимальное число групп.Это очевидно: числа 1, 2, 4, ..., 2^(k-1) должны быть в разных группах.Решение:n = int(input())t = 1k = 0while t <= n: t *= 2 k += 1print(k)