Файл содержит последовательность неотрицательных целых чисел, не превышающих 10 000. Назовём парой два идущих подряд элемента последовательности. Определите количество пар, в которых хотя бы один из двух элементов делится
Например, в последовательности
Ответ:
Решим задачу перебором. Приведём решение данной задачи на языке PascalABC:
var
x, y, count, maxsum: integer;
average: real;
f: text;
begin
assign(f,'C:\17.txt');
reset(f);
count := 0;
average := 0;
while not eof(f) do begin
readln(f, x);
if x mod 2 = 1 then begin
average := average + x;
count := count + 1;
end;
end;
close(f);
average := average / count;
count := 0;
maxsum := 0;
reset(f);
readln(f, x);
while not eof(f) do begin
readln(f, y);
if ((x mod 5 = 0) or (y mod 5 = 0)) and ((x < round(average)) or (y < round(average))) then begin
count := count + 1;
if (x + y > maxsum) then maxsum := x + y;
end;
x := y;
end;
writeln(count, ' ', maxsum);
end.
Результат работы программы — 1531 14932.
Приведём решение на языке Python.
f = open('17.txt')
a = [int(i) for i in f]
count = 0
mx = 0
s = 0
n = 0
for i in range(len(a)):
if (a[i] % 2 == 1):
s += a[i]
n += 1
x = s / n
for i in range(len(a) - 1):
if ((a[i] % 5 == 0) or (a[i + 1] % 5 == 0)) and ((a[i] < x) or (a[i + 1] < x)):
count += 1
mx = max(mx, a[i] + a[i + 1])
print(count, mx)
Результат работы программы — 1531 14932.
Ответ: 1531 14932.
Приведём решение Никиты Юрлова на языке Python.
f = open('17.txt')
a = [int(i) for i in f]
c = maxi = 0
nech = [i for i in a if i % 2 != 0]
av = sum(nech) / len(nech)
for i in range(len(a)-1):
if ((a[i] % 5 == 0) or (a[i+1] % 5 == 0)) and ((a[i] < av) or (a[i+1] < av)):
c += 1
maxi = max(maxi, a[i] + a[i+1])
print(c, maxi)

