Voici quelques fonctions qui permettent de réliser des opérations mathématiques pour de très grands nombres, comme des multiplications, des additions, des soustractions, des modulos, des transformations de Decimal en binaire et des division euclidiennes. J'ai aussi fait une petite fonction mgmod qui permet de calculer le modulo d'une expression mathématique du genre: (2555 x 3251^5585) mod 5223
Bon certaines sont rapide (multiplication, addition, soustraction) d'autres sont plus lentes (division, modulo, conversion binaire)
Je vais sans doute encore faire quelques fonctions et alors je les ajouterai.
Voici un exemple de ce que j'ententds par "opération sur de grands nombres":
746763632285821141342037895248750770669 3561915417437336022
855810841040726665245450470649 3231612117134305999525878380
199726562915447467636 3228582114134203789524875077066935619
155417437336 0228581084104072666524545047064932316121171343
055 99952587838019726562915447467636322858211413420378 95248
75507706693561915417437336022858108410407266 65245450470649
32231612117134305999525878380197265 62915447467636322858211
41134203789524875077066935 61915417437336022858108410407266
65524545047064932 31612117134305999525878380197265629154474
67763632 28582114134203789524875077066935619154174373360228
5881084104072666524545047064932316121171343059995 258783801
9772656291544746763632285821141342037895 248750770669356191
5441743733602285810841040726665 245551571749433261312724531
6009063598848010737672 026558578647323968212413431379053598
5118717704662 925428548446023968219411408376752565515717494
3332 61312724531609063598848010737672026558578647323968 2124
133431379053598518717704662925428548446023968 2194114083767
525655157174943326131272453160
.
6 85961055364762371596408866589237182943986670924028 3944117
988125704132742200112573516277220314267351 6307553314590384
666005533446906859610553647623715 9640886658923718294398667
099240283944117981257041 3274220011257351627722031426735163
077553314590384 6600553344690685961055364762371596408866589
233718 29439866709240283944117981257041327422001125735162 77
22203142673516307553314590384660055334469068596 10553647623
71159640886658923718294398667092402839 44117981257041327422
00011257351627722031426735163 07553314590384660055334469068
59961055364762371596 40886658923718294398667092402839441179
81125704132 74220011257351627722031426735163075533145903846
60 00553344690685961055364762371596408866589237182943 986670
9224028394411798125704132742200112674526387 320324368462731
8665332569149576116644556917950611 664758624725074199775893
4882830449977810340293054 227081367151338522001236745263873
2003243684627318 653325691495761166445569179506116647586247
2550741 99775893482830449977810340293054227081367151338522 0
012367452638732032436846273186
=
5122507693108 052051908131512143089045229455175415561596741
4115 66332092225777926084796255249362977925423990865445 7854
765979505938040122387895281798787356196704668 3029218298414
270488850635599222089271857585894382 1306020756928844917260
149681474181862956172470592 1381618263940050903619971854955
868512837556789861 6549668937396924474582292644083436280903
081287005 5701817042120421461679454734263999108523374019658
64511509821201633782948924037021651867235041585210 72906024
66496980235144592883101172046087998227357 28798496294238718
11476174188057860435723922616473 34696163781388547460987364
41265726001080784532712 43617959223979304080406789433849922
87217003898449 31997521438450798888152626132814848278783337
07085 89556746040135130413611298116349872506712381092875 331
6592897730971005286272040682228164590074535276 472462380813
0290545735206587837092572751966838238 347537089649127846050
1830690921868944930970943856 770232612588229711802688655297
5277728524770351930 009639830735857517804884275056341862026
1780535718 109234418975292625952006076532656341063155337236
9 18181865627197478611957583991389446086898363941526 2361546
862877003489986985813400426566295946446065 7710892791284199
236793378855115264252473152859184 7313677658077563349536155
695858318139290849898211 9042700711601422928494954019211302
855161878363847 2295513187440508782932175625878859575724470
277000 73734146144040384497646187720609688788052987996499 63
06074646019240055233551815760694524287730490622 76275473456
59845804658419957862321720389716296303 93927037411751117589
01642831748386924418343225398 44525548518624048521840196103
63226863987133247511 21414517540671701985694791213661014416
93980350994 67589087299833087745203938775943418268558517359
72 81873777374123921416215478295480002635918638207617 728518
5512862839991918173933460492085976528134262 265139816140734
9210686480183532557992081615581198 053269887141629694325327
9572052414638358668481018 444618982740877554078670905523641
1634934575218662 724812951391323540645910814578206660365482
2101632 18017442024226366551202919961313720959690929748967 7
60
Cette multiplication n'a mis que quelques secondes à être calculée par la fonction multi(term1,term2) et ici, les deux termes font chacun 1000 chiffres.