В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
lesyastruklol
lesyastruklol
16.02.2023 04:51 •  Информатика

Pascal. , , исправить ошибку. оптимизировать код и т.п. не мне только надо заставить этот код работать правильно, все остальное я уже сделаю сама. сама программа должна по заданному числу n находить такие числа a и b, которые в сумме будут давать n и их нод будет максимален. (т.е. их нод будет больше нода в любой другой такой паре). function nod (var a,b: integer): integer; var c: integer; begin repeat if a > b then a: = a mod b else b: = b mod a; until (a = 0) or (b = 0); nod: = a + b; end; var a,a1,a2,max,a3,a4: int64; begin readln(a); a1: = a div 2; a2: = (a div 2)+1; max: =1; if a mod 2 = 0 then writeln (a div 2,' ',a div 2) else while a1> 0 do begin if nod(a1,a2) > max then max: = nod(a1,a2); a1: =a1-1; a2: =a2+1; end; a1: = a div 2; a2: = (a div 2)+1; while a1> 0 do begin if nod(a1,a2) = max then a1: =a3, a2: =a4; a1: =a1-1; a2: =a2+1; end; writeln(a3,' ',a4); end.

Показать ответ
Ответ:
Function nod (a,b: integer): integer;
Begin
Repeat
if a > b then
a:= a mod b
else
b:= b mod a;
until (a = 0) or (b = 0);
nod:= a + b;
End; 
Var n,max,i:int64; 
Begin 
write('n = ');
Readln(n);
max:=0;
if n mod 2 = 0 
 then max:=n div 2
 else for i:=1 to n div 2 do
       if nod(i,n-i)>max then max:=i;
writeln(max,' ',n-max,' ' ,nod(max,n-max));
End.

Пример:
n = 11111
271 10840 271
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота