№ 6059 (Уровень: Базовый) (А. Игнатюк)
В файле представлена последовательность чисел от 0 от 10000 включительно. Необходимо определить количество пар, где имеется два четных натуральных числа с наибольшим общими делителем, превышающим число 100, и указать наибольшую возможную разность между числами в паре. Известно, что парой принято называть два стоящих подряд числа.
Файлы к заданию: 17.txt
import math as m
- импортируем библиотеку math
и задаем ему псевдоним m
.M = [int(i) for i in open('17.txt')]
- открываем файл '17.txt' и читаем его содержимое, преобразуя каждую строку в целое число. Результат сохраняется в списке M
.count = 0
- создаём переменную count
значением 0.maxi = 0
- создаём переменную maxi
значением 0.for i in range(0, len(M)-1):
- пробегаем цикл, перебирая индексы элементов списка M
от 0 до len(M)-1
.if M[i] % 2 == 0 and M[i+1] % 2 == 0:
- проверяем, являются ли текущий элемент и следующий элемент четными числами.if m.gcd(M[i], M[i+1]) > 100:
- проверяем, является ли НОД (наибольший общий делитель) текущего и следующего элементов больше 100.count += 1
- увеличиваем значение переменной count
на 1.maxi = max(maxi, abs(M[i] - M[i+1]))
- обновляем значение переменной maxi
, выбирая максимальное значение между текущим значением maxi
и абсолютной разницей между текущим и следующим элементами.print(count, maxi)
- выводим значения переменных count
и maxi
.import math as m
M = [int(i) for i in open('17.txt')]
count = 0
maxi = 0
for i in range(0, len(M)-1):
if M[i] % 2 == 0 and M[i+1] % 2 == 0:
if m.gcd(M[i], M[i+1]) > 100:
count += 1
maxi = max(maxi, abs(M[i] - M[i+1]))
print(count, maxi)