Zadanie jest następujące. Biorąc pod uwagę liczbę całkowitą x
(taką, że x
modulo 100000000003
nie jest równe 0
) przedstawioną w kodzie w dowolny dogodny sposób, wypisz kolejną liczbę całkowitą y < 100000000003
, aby (x * y) mod 100000000003 = 1
.
Kod musi trwać krócej niż 30 minut, aby uruchomić się na standardowym komputerze stacjonarnym dla każdegox
takiego wejścia |x| < 2^40
.
Przypadki testowe
Wejście: 400000001. Wyjście: 65991902837
Wejście: 4000000001. Wyjście: 68181818185
Wejście: 2. Wyjście: 50000000002
Wejście: 50000000002. Wyjście: 2.
Wejście: 1000000. Wyjście: 33333300001
Ograniczenia
Nie wolno używać żadnych bibliotek ani wbudowanych funkcji, które wykonują arytmetykę modulo (lub tę odwrotną operację). Oznacza to, że nie możesz się obejść a % b
bez wdrożenia %
się. Możesz jednak użyć wszystkich innych niemodulo modulowanych wbudowanych funkcji arytmetycznych.
Podobne pytanie
Jest to podobne do tego pytania, choć, mam nadzieję, na tyle różne, że nadal będzie interesujące.
100000000003
? (tylko się zastanawiam)