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":
7467636322858211413420378952487507706 693561915417437336022
855810841040726665245450470 6493231612117134305999525878380
19972656291544746 76363228582114134203789524875077066935619
1554174 37336022858108410407266652454504706493231612117134 3
05599952587838019726562915447467636322858211413 42037895248
7550770669356191541743733602285810841 040726665245450470649
322316121171343059995258783 8019726562915447467636322858211
41134203789524875 07706693561915417437336022858108410407266
6552454 50470649323161211713430599952587838019726562915447 4
67763632285821141342037895248750770669356191541 74373360228
5881084104072666524545047064932316121 171343059995258783801
977265629154474676363228582 1141342037895248750770669356191
54417437336022858 10841040726665245551571749433261312724531
6009063 59884801073767202655857864732396821241343137905359 8
51187177046629254285484460239682194114083767525 65515717494
3332613127245316090635988480107376720 265585786473239682124
133431379053598518717704662 9254285484460239682194114083767
52565515717494332 6131272453160
.
6859610553647623715964088665 892371829439866709240283944117
988125704132742200 1125735162772203142673516307553314590384
66600553 34469068596105536476237159640886658923718294398667
099240283944117981257041327422001125735162772203 1426735163
07755331459038466005533446906859610553 64762371596408866589
2337182943986670924028394411 798125704132742200112573516277
222031426735163075 5331459038466005533446906859610553647623
71159640 88665892371829439866709240283944117981257041327422
000112573516277220314267351630755331459038466005 5334469068
59961055364762371596408866589237182943 98667092402839441179
8112570413274220011257351627 722031426735163075533145903846
600055334469068596 1055364762371596408866589237182943986670
92240283 94411798125704132742200112674526387320324368462731
866533256914957611664455691795061166475862472507 4199775893
48828304499778103402930542270813671513 38522001236745263873
2003243684627318653325691495 761166445569179506116647586247
255074199775893482 8304499778103402930542270813671513385220
01236745 2638732032436846273186
=
5122507693108052051 908131512143089045229455175415561596741
411566332 0922257779260847962552493629779254239908654457854
7659795059380401223878952817987873561967046683029 218298414
270488850635599222089271857585894382130 6020756928844917260
14968147418186295617247059213 81618263940050903619971854955
8685128375567898616 549668937396924474582292644083436280903
081287005 5701817042120421461679454734263999108523374019658
6451150982120163378294892403702165186723504158521 072906024
664969802351445928831011720460879982273 5728798496294238718
11476174188057860435723922616 47334696163781388547460987364
4126572600108078453 271243617959223979304080406789433849922
872170038 9844931997521438450798888152626132814848278783337
0708589556746040135130413611298116349872506712381 092875331
659289773097100528627204068222816459007 4535276472462380813
02905457352065878370925727519 66838238347537089649127846050
1830690921868944930 970943856770232612588229711802688655297
527772852 4770351930009639830735857517804884275056341862026
1780535718109234418975292625952006076532656341063 155337236
918181865627197478611957583991389446086 8983639415262361546
86287700348998698581340042656 62959464460657710892791284199
2367933788551152642 524731528591847313677658077563349536155
695858318 1392908498982119042700711601422928494954019211302
8551618783638472295513187440508782932175625878859 575724470
277000737341461440403844976461877206096 8878805298799649963
06074646019240055233551815760 69452428773049062276275473456
5984580465841995786 232172038971629630393927037411751117589
016428317 4838692441834322539844525548518624048521840196103
6322686398713324751121414517540671701985694791213 661014416
939803509946758908729983308774520393877 5943418268558517359
72818737773741239214162154782 95480002635918638207617728518
5512862839991918173 933460492085976528134262265139816140734
921068648 0183532557992081615581198053269887141629694325327
9572052414638358668481018444618982740877554078670 905523641
163493457521866272481295139132354064591 0814578206660365482
21016321801744202422636655120 29199613137209596909297489677
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.