Автор | Сообщение |
|
Отправлено: 21.02.23 19:05. Заголовок: Задача 6198 с сайта KEGE
(Т. Коняев) В файле содержится последовательность натуральных чисел, каждое из которых не превышает 100000. Назовём тройкой чисел три идущих подряд элемента последовательности. Необходимо определить количество троек, НОК которых является простым числом. Гарантируется, что такие тройки имеются в файле. В качестве ответа укажите сначала количество таких троек, а затем наименьший НОД элементов таких троек. НОД - наибольший общий делитель; НОК - наименьшее общее кратное. Простое число - число, которое имеет только два натуральных делителя, т.е. делится только на себя и на единицу. Количество троек у меня получается 9, а в ответе 8. Не могу понять, где я ошибаюсь. ## uses school; function IsP(x:int64):boolean; begin result:=true; for var j:=2 to trunc(sqrt(x)) do if x mod j=0 then begin result:=false;exit; end; end; var l:=new List<Int64>; var a:=readlines('17-6198.txt').Select(w->w.ToInteger).ToArray; for var j:=0 to a.High -2 do if IsP(LCM(LCM(a[j],a[j+1]),a[j+2])) then l.Add(GCD(GCD(a[j],a[j+1]),a[j+2])); print(l.Count, l.Min);
|
|
|
Новых ответов нет
|
|