function f(x: integer): integer; var L, M: integer; begin L := x - 12; M := x + 12; while L <> M do if L > M then L := L - M else M := M - L; f := M; end;
begin for x := 100 to 100000 do if f(x) = 1 then begin writeln(x); break; end;
end.
Что делает алгоритм из задания? Ищет наибольший общий множитель чисел M и L. То что ответ должен быть 1, означает, что ищем взаимно простые числа
Вообще задачка не стоит своих , она стоит куда дороже Мы знаем что у нас нечетное число букв, причем что нечетность приходится на букву Б (9) Все палиндромы длиной во все буквы Тогда каждый палинром имеет такую схему: [некий набор альфа]Б[альфа в обратном порядке] Разных альф может быть тоже 35 и состоит из половины букв Ч и (9-1)/2 = 4 букв Б Обозначим все колво букв Ч = 2x, а половину - х Значит у нас тут Перестановки с повторениями, колво которых 35 35 = (x+4)! / (x!4!) 35 * 4! = (x+4)(x+3)(x+2)(x+1) 7 * 5 * 4 * 3 * 2 = (x+4)(x+3)(x+2)(x+1) можно представить так 7 * 6 *5 * 4 = (x+4)(x+3)(x+2)(x+1) очевидно что 7 = х+4 т.е.х=3 А букв Ч = 2х = 2*3 = 6
Надеюсь понятно
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку