Teorema del resto cinese
Se compaiono frequentemente numeri interi grandi arbitrari o la rappresentazione di numeri interi grandi nel linguaggio di programmazione di destinazione costa troppi byte, puoi prendere in considerazione l'uso del teorema del residuo cinese.
Scegli alcuni interi relativamente primi a coppie m i > = 2 e puoi esprimere un numero grande da 0 a mcm (m 1 , m 2 , ..., m i ) -1
Ad esempio, scelgo 2, 3, 5, 11, 79, 83, 89, 97, quindi posso esprimere un numero inferiore a 18680171730 in modo univoco. 10000000000 (1e10) possono essere espressi come 0,1,0,1,38,59,50,49 (1e10 mod 2, 3 ..., 97) che non devono essere espressi come speciali classi / strutture di Big Integer che potrebbero salvare alcuni byte in qualche linguaggio di programmazione.
Aggiunta e sottrazione possono essere fatte direttamente usando questa rappresentazione. Esempio:
(0,1,0,1,38,59,50,49)+(0,2,0,6,23,20,16,53) = 1e10 + 5000
= (0+0 mod 2, 1+2 mod 3, 0+0 mod 5, 1+6 mod 11, 38+23 mod 79, 59+20 mod 83, 50+16 mod 89, 49+53 mod 97)