Ruud H.G. van Tol on Mon, 05 Dec 2022 08:55:47 +0100


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: A071521(n)




On 2022-11-27 11:21, Karim Belabas wrote:

   A071521(n)= my(t=1);sum(k=1,logint(n,3),logint(n\t*=3,2)+1)

when k = 1, we set t = 3 and compute logint(n \ 3, 2), where it was probably
expected to compute logint(n \ 1, 2). If so,

The code indeed has a bug.

The original code, from Charles on the OEIS-page,
starts with t=1/3 and k=0:
a(n)=my(t=1/3); sum(k=0, logint(n, 3), t*=3; logint(n\t, 2)+1)
and I had messed that up. :(

And @Bill: thanks for mentioning the "Warning: compiler generates copy".


- - - - - -
Some timings:

{
a2_0(n)= my(t=1/3); sum(k=0, logint(n, 3), t*=3; logint(n\t, 2) +1)
}
{
a3_0(n)= my(t=1/2); sum(k=0, logint(n, 2), t+=t; logint(n\t, 3) +1)
}
{
a3_1(n)= sum(k=0, logint(n, 2), logint(n >> k, 3) +1)
}

? a2_0(2*10^30)
%9 = 3278

? a3_0(2*10^30)
%10 = 3278

? a3_1(2*10^30)
%11 = 3278


? a2_0(2^9999)
cpu time = 39 ms, real time = 39 ms.
%16 = 31548331

? a3_0(2^9999)
cpu time = 124 ms, real time = 124 ms.
%17 = 31548331

? a3_1(2^9999)
cpu time = 70 ms, real time = 71 ms.
%18 = 31548331


-- Ruud