Data update

This commit is contained in:
Ingy döt Net 2025-02-27 18:35:13 -05:00
parent 8e4e15fa56
commit 72eb4943cb
1853 changed files with 35514 additions and 9441 deletions

View file

@ -0,0 +1,18 @@
function placecoma(a as string) {
if len(a)<4 then =a :exit
k=StrRev$(a)
a=""
for i=4 to len(k) step 3
a+=mid$(k,i-3, 3)+","
next
a+=mid$(k, i-3)
a=strrev$(a)
if left$(a,1)="," then =mid$(a,2) else =a
}
a=bigInteger("2")
'method a, "intpower", biginteger("128") as a
method a, "intpower", biginteger("64") as a
method a, "multiply", a as a
with a,"tostring" as a.tostring
Print placecoma(a.tostring)

View file

@ -0,0 +1,56 @@
function longmulti(a, b: string): string;
begin
var i := 0;
var j := 0;
var k := false;
// either is zero, return "0"
if (a = '0') or (b = '0') then
begin
result := '0';
exit;
end;
// see if either a or b is negative
if a[1] = '-' then
begin
i := 2;
k := not k;
end;
if b[1] = '-' then
begin
j := 2;
k := not k;
end;
// if yes, prepend minus sign if needed and skip the sign
if (i > 1) or (j > 1) then
begin
result := if k then '-' else '';
result += longmulti(a[i:a.Length + 1], b[j:b.Length + 1]);
exit;
end;
result := '0' * (a.length + b.length);
for var ii := a.length downto 1 do
begin
var carry := 0;
var kk := ii + b.length;
for var jj := b.length downto 1 do
begin
var n := a[ii].todigit * b[jj].todigit + result[kk].todigit + carry;
carry := n div 10;
result[kk] := chr(n mod 10 + ord('0'));
dec(kk);
end;
result[kk] := chr(ord(result[kk]) + carry);
end;
if result[1] = '0' then
result[1:result.length] := result[2:result.length + 1];
end;
begin
longmulti('-18446744073709551616', '-18446744073709551616').println;
end.