L'attività è la seguente. Dato un numero interox
(tale che x
modulo 100000000003
non è uguale a 0
) presentato al tuo codice in qualsiasi modo ritieni opportuno, genera un altro numero intero in y < 100000000003
modo che (x * y) mod 100000000003 = 1
.
Il codice deve richiedere meno di 30 minuti per essere eseguito su un computer desktop standard per qualsiasi input x
tale |x| < 2^40
.
Casi test
Ingresso: 400000001. Uscita: 65991902837
Ingresso: 4000000001. Uscita: 68181818185
Ingresso: 2. Uscita: 50000000002
Ingresso: 50000000002. Uscita: 2.
Ingresso: 1000000. Uscita: 33333300001
restrizioni
Non è possibile utilizzare alcuna libreria o funzione incorporata che esegue l'aritmetica del modulo (o questa operazione inversa). Ciò significa che non puoi nemmeno fare a a % b
meno dell'attuazione%
te stesso. Tuttavia, è possibile utilizzare tutte le altre funzioni integrate aritmetiche non modulo.
Domanda simile
Questo è simile a questa domanda, anche se si spera sia abbastanza diverso da essere ancora interessante.
100000000003
? (solo chiedendosi)