[fpc-pascal] Super Large Integer Math Calculations

Ingemar Ragnemalm ingemar at ragnemalm.se
Sat Jul 8 12:32:45 CEST 2017


Bart <bartjunk64 at gmail.com> wrote:

> On 7/7/17, noreply at z505.com <noreply at z505.com> wrote:
>
>> For integers beyond 64 bit, or even beyond 32 bit on a 64 bit machine,
>> why can't the math be broken down into peices the way a human does it on
>> paper, and then theoretically any number can be added and subtracted,
>> even if it is beyond 32/64 bit?
>>
>> Example:
>>
>> type TSuperLargeInt = string;
>>
>> var
>>     i, j: TSuperLargeInt;
>>     output: TSuperLargeInt;
>> begin
>>     i := '100000000000000000009';
>>     j := '100000000000000000001';
>>     output := AddLargeInts(i,j);
>>     writeln(output);
>> end.
> http://svn.code.sf.net/p/flyingsheep/code/trunk/wtf/ncalc.pp does exactly that
> (all dependenies are also found at
> http://svn.code.sf.net/p/flyingsheep/code/trunk/wtf).
>
> It can handle integers (and only integers) up to 2GB digits with
> absolut precision.
> It can handle GoogolPlex.
>
> Calculate 9^99 with absolute precision:
> 29512665430652752148753480226197736314359272517043832886063884637676943433478020332709411004889
>
> Fac(100)?
> 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
>
> It's not lightning fast, but there is room for optimization I guess.
>
> Bart

Great! I knew someone must have made that! I needed this a few months 
ago, but resorted to Python at that time. Now I can use FPC next time. :)

/Ingemar




More information about the fpc-pascal mailing list