ОСТАТОК ОТ ДЕЛЕНИЯ.
Напомним, как в математике определяется остаток от деления целых чисел.
Для любых целых чисел a и b (b ≠ 0) найдется единственная пара целых чисел q и r таких, что a = q×b + r, где 0 ≤ r < |b|.
Здесь a – делимое, b – делитель, q – неполное частное, r – остаток. Следует заметить, что остаток r – это всегда неотрицательное число.
В языках программирования существуют операции для вычисления остатка от деления. Однако эти операции практически всегда в случае отрицательных чисел работают по иным правилам.
Ваша задача – по заданным числам a и b определить значение остатка от деления a на b.
Входные данные
Входной файл INPUT.TXT содержит два целых числа a и b (-1018 ≤ a, b ≤ 1018, b ≠ 0).
Выходные данные
В выходной файл OUTPUT.TXT выведите ответ на задачу.
Примеры
№INPUT.TXTOUTPUT.TXTПояснение127 4327 = 6*4 + 32-15 41-15 = -4*4 + 13113 -32113 = -37*(-3) + 24-15 -76-15 = 3*(-7) + 6
var
M, N, k, mn, P: integer;
f: Text;
begin
Assign(f, 'input.txt');
Reset(f);
Readln(f, M, N);
Close(f);
if M < N then mn := M else mn := N;
if mn = 1 then P := 0
else begin
k := mn div 2;
if mn mod 2 = 0 then
if M = N then P := 4 * k - 2
else P := 4 * k - 1
else
if M = N then P := 4 * k
else P := 4 * k + 1
end;
Assign(f, 'output.txt');
Rewrite(f);
Writeln(f, P);
Close(f)
end.
var
M, N, k, mn, P: integer;
f: Text;
begin
Assign(f, 'input.txt');
Reset(f);
Readln(f, M, N);
Close(f);
if M < N then mn := M else mn := N;
if mn = 1 then P := 0
else begin
k := mn div 2;
if mn mod 2 = 0 then
if M = N then P := 4 * k - 2
else P := 4 * k - 1
else
if M = N then P := 4 * k
else P := 4 * k + 1
end;
Assign(f, 'output.txt');
Rewrite(f);
Writeln(f, P);
Close(f)
end.