Program a; var s: array of integer; x,n,p,sum,max,min,i,k,o,m:integer; begin p:=1; sum:=0; m:=-1; o:=-1; max:=-MaxInt; min:=MaxInt; Write('n= '); read(n); setlength(s,n); Writeln('Перечислите значения:'); for x:=0 to n-1 do begin read (s[x]); k:=s[x]; if (k>0) and ((k mod 5) =0) then sum:=sum+k; if ((k mod 10)=0) and (k>max) then begin max:=k; o:=x; end; if ((k mod 2) = 0) and (k<min) then begin min:=k; m:=x; end; end;Writeln('Сумма = ',sum); if (ABS(o-m)=1) or (o=m) or (o=-1) or (m=-1) then write('Диапазон не найден') else begin if (o>m) then for i:=m+1 to o-1 do p:=s[i]*p else for i:=o+1 to m-1 do p:=s[i]*p; writeln('Произведение = ',p); end; end.
Думаю, логика у нас здесь будет такая: нужно разложить данные три числа на простые сомножители. Получится: 132 = 2 * 2 * 3 * 11 106 = 2 * 53 134 = 2 * 67 Что у них есть общего - то можно откинуть, потому что количество кругов будет при общих сомножителях делиться без остатка. Собрать в ответ нужно следующее: от первого - 2 * 2 * 3 * 11 от второго - 53 (двойку не берём, потому что она уже взята с первым) от третьего - 67 (двойку опять не берём)
Получается: 2 * 2 * 3 * 11 * 53 * 67 = 468732 секунды. Это, как я думаю, ответ.
При этом (чисто для сведения), до момента встречи: первый намотает 3551 круг второй - 4422 круга третий - 3498 кругов.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку