I'm not sure if it helps, but for 130 bits, we only need to divide the point by 2, 101 times. The issue is figuring out where to subtract 1 to avoid floating-point errors.
the problem of dividing by 2 is that you need 2**101 pubkeys (according to your approach).
update:
dividing by 3 you need 3**14 pubkeys, to reduce puzzle130 down to the equivalent of puzzle 105.
So reducing 25 bits, if dividing by 2 we need 2^25 public keys with 1 one of them to be the correct result, but dividing by 3 we need 3^14 keys, one of them would be correct, how did you calculate it?
I hope your scrip saves the results to a file, because I only see print, are we supposed to print thousands of keys on screen? 😅
He says he wants to divide 101 times, and since he doesn't know the pk he needs to do pk/2 and ( pk-1)/2 which results in 2x2x2x2.... 101 times (2**101)
by 3 is 3x3x3x3.... 14 times (3**14) equivalent to puzzle 105