Файл содержит последовательность неотрицательных целых чисел, не превышающих 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 3 = 0) or (y mod 3 = 0)) and ((x + y) mod 5 = 0) then begin
count := count + 1;
if (x + y > maxsum) then maxsum := x + y;
end;
x := y;
end;
writeln(count, ' ', maxsum);
end.
Результат работы программы — 635 19730.
Ответ: 635 19730.
Приведём решение Павла Шостка на языке PascalABC:
var a:=readalltext('17.txt').ToIntegers.Pairwise.
Where(\(x,y)->(x.divs(3) or y.divs(3)) and (x+y).divs(5));
a.Count.Println;
a.Select(\(x,y)->x+y).Max.Print;
end.
Приведём решение на языке Python.
f=open('17_38951.txt')
Sum=0
Mx=0
x=int(f.readline())
for y in f:
y=int(y)
if (((x+y)%5==0) and ((x%3==0) or (y%3==0))):
Sum += 1
Mx = max(Mx,x+y)
x=y
print(Sum,Mx)

