Файл содержит последовательность неотрицательных целых чисел, не превышающих 10 000. Назовём парой два идущих подряд элемента последовательности. Определите количество пар, в которых хотя бы один из двух элементов делится
Например, в последовательности
Ответ:
Решим задачу перебором. Приведём решение данной задачи на языке PascalABC:
var
x, y, count, maxsum: integer;
f: text;
begin
assign(f,'C:\17.txt');
reset(f);
count := 0;
maxsum := 0;
readln(f, x);
while not eof(f) do begin
readln(f, y);
if ((x mod 5 = 0) or (y mod 5 = 0)) and ((x + y) mod 7 = 0) then begin
count := count + 1;
if (x + y > maxsum) then maxsum := x + y;
end;
x := y;
end;
writeln(count, ' ', maxsum);
end.
Результат работы программы — 308 18893.
Ответ: 308 18893.
Приведём решение на языке Python.
f = open("17(6).txt")
s = f.readlines()
k = 0
maxi = 0
for i in range(len(s)):
s[i] = int(s[i])
for i in range(len(s) - 1):
if (s[i] % 5 == 0 or s[i + 1] % 5 == 0) and ((s[i] + s[i + 1]) % 7 == 0):
k += 1
maxi = max(maxi, s[i] + s[i + 1])
print(k, maxi)
Приведём решение Сергея Донец на PascalABC.NET:
begin
var p:=ReadAllText('17.txt').ToIntegers.Pairwise
.Where(\(x,y)->(x.divs(5)or y.divs(5))and(x+y).divs(7));
p.Count.Print;
p.Max(\(x,y)->x+y).Print;
end.

