Вопрос по информатике:
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.
Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?
Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок - бесплатно!
- 18.08.2018 08:20
- Информатика
- remove_red_eye 1836
- thumb_up 40
Ответы и объяснения 1
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
- 20.08.2018 00:52
- thumb_up 35
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.