La tâche est la suivante. Étant donné un entier x
(tel que x
modulo 100000000003
n'est pas égal à 0
) présenté à votre code de la manière qui vous convient, sortez un autre entier y < 100000000003
pour que (x * y) mod 100000000003 = 1
.
Votre code doit prendre moins de 30 minutes pour s'exécuter sur une machine de bureau standard pour toute entrée de ce x
type |x| < 2^40
.
Cas de test
Entrée: 400000001. Sortie: 65991902837
Entrée: 4000000001. Sortie: 68181818185
Entrée: 2. Sortie: 50000000002
Entrée: 50000000002. Sortie: 2.
Entrée: 1000000. Sortie: 33333300001
Restrictions
Vous ne pouvez pas utiliser de bibliothèques ou de fonctions intégrées qui effectuent l'arithmétique modulo (ou cette opération inverse). Cela signifie que vous ne pouvez même pas vous a % b
passer de %
votre propre implémentation . Vous pouvez cependant utiliser toutes les autres fonctions intégrées arithmétiques non modulo.
Question similaire
Ceci est similaire à cette question, même si nous l'espérons suffisamment différent pour être toujours intéressant.
100000000003
? (je me demandais juste)