20 напишите программу, которая в последовательности натуральных чисел определяет минималь- ное чётное число. программа получает на вход количество чисел в последовательности, а затем сами числа. в последовательности всегда имеется чётное число. количество чисел не превышает 1000 введённые числа не превышают 30 0 программа должна вывести одно число — минимальное чётное число. пример работы программы: входные данные выходные данные 8 4 3 20 6 6
20
Примечание:
Вижу опечатку!
Это не влияет на ответ, но в решении я буду предполагать, что вершина без названия (слева сверху) - это вершина Б. А вершина с двумя названиями (по центру сверху) - это вершина Д.
Объяснение:
В таких задачах рекомендую начинать с поиска вершин минимальной степенью (т.е. с минимальным числом связей).
Такие вершины в данном графе: А, Д, Б, Е - их степень равна двум.
В таблицы каким-либо образом им соответствуют столбцы П7, П5, П3, П1. Начнем анализировать, например, с П7. Мы видим что у П7 две связи с П4 и П6. При этом П4 имеет степень 4, а П6 имеет степень 5. Среди них нет вершины со степенью 2 или 3. Значит П7 это не А, не Б, и не К. Потому что у А, Б есть сосед со степенью 2, а у К есть сосед со степенью 3, чего нельзя сказать из таблицы о П7. Значит П7 это пункт Д на графе.
У пункта Д (он же П7) только два соседа - В и Е. Где у В степень 5, а у Е степень 4. Значит, соответственно таблице, В - П6, Е - П4.
Найти необходимо расстояние между В и Е (они же П6 и П4). Смотрим в таблицу, результат 20.
Тут нам несколько повезло, потому что не пришлось долго анализировать таблицу и граф. Мы правильно сделали что начали с П7, но не всегда так удачно выходит.
def solve(n):
d = 0
while not (n&1):
d += 1
n //= 2
a = [2]*d
a[-1] *= n
if d == 1:
print("prime")
return
for x in range(3, int(n**.5)+1, 2):
if not (n%x):
b = a[:]
b[-1] //= x
b[-2] *= x
print("many")
print(" ".join(map(str, a)))
print(" ".join(map(str, b)))
return
print("single")
print(" ".join(map(str, a)))
from sys import stdin
for line in stdin:
print("=== " + line.strip() + " ===")
solve(int(line))
Дайте плз 5 звёзд, мне очень не хватает "Лучших ответов"