x: ". y where y is simply a string of digits will interpret those digits as a
(fixed-width) integer and _then_ convert the latter to extended-precision.
You could append an 'x', or perhaps consider the following definition:
truncs=. [:~. [:10&#.\. 10&#.^:_1 NB.equivalent to ltrunc^:a:
,.truncs 357686312646216567629137x
357686312646216567629137
57686312646216567629137
7686312646216567629137
686312646216567629137
86312646216567629137
6312646216567629137
312646216567629137
12646216567629137
2646216567629137
646216567629137
46216567629137
6216567629137
216567629137
16567629137
6567629137
567629137
67629137
7629137
629137
29137
9137
137
37
7
On Sat, 19 Nov 2022, Richard Donovan wrote:
Hi
I am doing experiments with large primes, in particular looking at primes that
remain primes when n digits are truncated from the left. For example
6391373 391373 91373 1373 373 73 3 remains prime at each step.
The largest of these in base 10 is 357686312646216567629137.
I wrote the following code in preparation for further investigation but I find
that the 24 digit number above is not handled as I wish it to be, as you will
see below.
What have I missed?
Thanks
digits
"."0@":
ltrunc
3 : 0"0 0 0
n=: ": 0, }. digits y
x: ". n-. ' '
)
NB. Works fine with 7 digit number...
ltrunc^:a: 6391373
6391373 391373 91373 1373 373 73 3 0
NB. But I can’t get it working for a 24 digit number!
ltrunc 357686312646216567629137
0 0 5 7 6 8 6 0 2 3
ltrunc 357686312646216567629137x
57686312646216568012800
ltrunc x:357686312646216567629137x
57686312646216568012800
Is there a way around the limit?
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm