Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uses
- system, timers;
- function GCD(a: int64; b: int64): int64;
- begin
- if (A * B) = 0 then GCD := A + B
- else if (A > B) then GCD := GCD(A mod B, B)
- else GCD := GCD(A, B mod A);
- end;
- var
- n: int64;
- flag: boolean;
- begin
- repeat
- Console.Write('Введите число N: ');
- try
- n := Convert.ToInt64(Console.ReadLine());
- flag := true;
- except
- on System.FormatException do
- begin
- flag := false;
- Console.WriteLine('ОШИБКА: Неверный формат ввода :(');
- end;
- end;
- until flag;
- var temp := 0;
- var left := 0;
- var right := 0;
- var aTimerStart := Milliseconds; // Старт таймера 1
- for var i := 1 to n div 2 do
- begin
- if GCD(i, n - i) > temp then
- begin
- left := i;
- right := n - i;
- temp := GCD(i, n - i);
- end;
- end;
- var aTimerStop := Milliseconds; // Стоп таймера 1
- Console.WriteLine('Ответ: сумма чисел {0} и {1} имеет НОД. равный {2}.', left, right, GCD(left, right));
- Console.WriteLine('Служебная информация:');
- Console.WriteLine(' - время затраченное на выполнение программы: {0} сек / {1} мс;', (aTimerStop - aTimerStart) div 1000, aTimerStop - aTimerStart);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement