Деление в поле вычетов

Зафиксируем простое число p = (2^31)-1.
На вход подается два числа a и b принадлежат Zp, причем b != 0 .
Нужно поделить a на b в поле Zp и вывести результат.

Формат ввода
На вход поступают два целых числа a и b. Число a находится в интервале [0,p-1], а число b в интервале [1,p-1].
Формат вывода
Вывод состоит из одного числа, равного a/b в поле Zp. Подскажите как решать!

p укзывается как константа

int p (61), z(0);
int a, b;

Далее ввод переменных a, b
Для a и b предусмотреть контроль ввода.
Для a

if ( a >=0 && a <=p)

Для b

if ( b >=1 && b <=p )

Если условия выполняются, производим деление

z = a / b;

выводим результат z.
Условие не выполняется, сообщаем об ошибке ввода переменных.

Как-бы-так

а что такое поделить a на b в поле Zp?

Я понял это как интервал от 0 до 62-1.
Возможно у автора другая версия…

P. S.
Возможно интервал равен от 0 до 60.
Т. к. в условии есть значение p-1:
в интервале [0,p-1], а число b в интервале [1,p-1]

Да тут явно какую-то более сложную математику хотят )
поле вычетов - Google zoeken

2^32 это обычно 2 в степени 32, а не умножение.

Точно, это я чет сглупил.
А по поводу математики может ты и прав. Предполагаю у автора спросить нужно.

Сложение и умножение в таком поле вроде как просто остаток от деления результата на p. Например в поле Z5: 2+3=0, 2*3=1. Хоть деление и обратно умножению чего оно значит в поле вычетов пока не догоняю )

1 лайк

Так это и есть значение деления)
https://aafin.ru/m/rsaa.html#tth_sEc1.3

Нужно найти обратное число и умножить на него.