A tarefa é a seguinte. Dado um número inteiro x
(de modo que o x
módulo 100000000003
não seja igual a 0
) apresentado ao seu código da maneira que achar conveniente, imprima outro número inteiro y < 100000000003
para que (x * y) mod 100000000003 = 1
.
Seu código deve levar menos de 30 minutos para ser executado em uma máquina desktop padrão para qualquer entrada x
como essa |x| < 2^40
.
Casos de teste
Entrada: 400000001. Saída: 65991902837
Entrada: 4000000001. Saída: 68181818185
Entrada: 2. Saída: 50000000002
Entrada: 50000000002. Saída: 2.
Entrada: 1000000. Saída: 33333300001
Restrições
Você não pode usar nenhuma biblioteca ou função interna que execute módulo aritmético (ou esta operação inversa). Isso significa que você não pode nem ficar a % b
sem %
se implementar . No entanto, você pode usar todas as outras funções internas aritméticas não modulares.
Pergunta semelhante
Isso é semelhante a essa pergunta, embora seja esperançosamente diferente o suficiente para ainda ser interessante.
100000000003
? (me perguntando)