From 488842ab5a3ebd5957a6c9eaec2ddc5e05393693 Mon Sep 17 00:00:00 2001 From: Zver Date: Tue, 16 Dec 2025 11:44:33 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=2020=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson.20.py | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 lesson.20.py diff --git a/lesson.20.py b/lesson.20.py new file mode 100644 index 0000000..db21695 --- /dev/null +++ b/lesson.20.py @@ -0,0 +1,76 @@ +''' ****** Задание 20 из 20 ********* +* Напомним, что взаимно простыми называются числа, которые не имеют общих делителей, кроме 1. + +Напишите программу, которая: + +получает список чисел, разделённых точкой с запятой и пробелом; +для каждого числа определяет, с какими другими числами оно взаимно просто; +выводит результат в порядке возрастания чисел без повторений; +если для числа не найдено ни одного взаимно простого числа — его не нужно выводить вовсе. +Формат ввода +Задана последовательность чисел записанных через точку с запятой (;) и пробел. + +Формат вывода +Список чисел с указанием взаимно простых ему среди переданных. +Все числа должны быть выведены в порядке возрастания без повторений. +Строки следует отформатировать по правилу: +число - взаимно простое 1, взаимно простое 2, ... +Если для числа не было найдено ни одного взаимно простого, то и выводить его не требуется. + + +Подсказка +Рассмотрите все возможные пары чисел. + +Если два числа a и b являются взаимно простыми, то по ключу a в список добавьте b и наоборот. + +Пример 1 +Ввод + +2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; 19; 20 +Вывод + +2 - 3, 5, 7, 9, 11, 13, 15, 17, 19 +3 - 2, 4, 5, 7, 8, 10, 11, 13, 14, 16, 17, 19, 20 +4 - 3, 5, 7, 9, 11, 13, 15, 17, 19 +5 - 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14, 16, 17, 18, 19 +6 - 5, 7, 11, 13, 17, 19 +7 - 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20 +8 - 3, 5, 7, 9, 11, 13, 15, 17, 19 +9 - 2, 4, 5, 7, 8, 10, 11, 13, 14, 16, 17, 19, 20 +10 - 3, 7, 9, 11, 13, 17, 19 +11 - 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20 +12 - 5, 7, 11, 13, 17, 19 +13 - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20 +14 - 3, 5, 9, 11, 13, 15, 17, 19 +15 - 2, 4, 7, 8, 11, 13, 14, 16, 17, 19 +16 - 3, 5, 7, 9, 11, 13, 15, 17, 19 +17 - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20 +18 - 5, 7, 11, 13, 17, 19 +19 - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20 +20 - 3, 7, 9, 11, 13, 17, 19 +''' + + +if __name__ == "__main__": + data = sorted(map(int, input().split('; '))) + result = dict.fromkeys(data) + for i in data: + for j in data: + a, b = i, j + while b: + a, b = b, a % b + if a == 1: + if result[i]: + result[i].add(j) + else: + result[i] = {j} + for number in result: + if result[number]: + print(f'{number} - {", ".join(map(str, sorted(result[number])))}') + + + + + + +