20 lines
386 B
Text
20 lines
386 B
Text
long(a,b)={
|
|
a=eval(Vec(a));
|
|
b=eval(Vec(b));
|
|
my(c=vector(#a+#b),carry=0);
|
|
for(i=1,#a,
|
|
for(j=1,#b,
|
|
c[i+j]+=a[i]*b[j]
|
|
)
|
|
);
|
|
forstep(i=#c,1,-1,
|
|
c[i] += carry;
|
|
carry = c[i] \ 10;
|
|
c[i] = c[i] % 10
|
|
);
|
|
for(i=1,#c,
|
|
if(c[i], return(concat(apply(s->Str(s),vector(#c+1-i,j,c[i+j-1])))))
|
|
);
|
|
"0"
|
|
};
|
|
long("18446744073709551616","18446744073709551616")
|