31 lines
1.2 KiB
Raku
31 lines
1.2 KiB
Raku
# 20210326 Raku programming solution
|
|
|
|
use NativeCall;
|
|
|
|
constant LIBSQUFOF = '/home/user/LibSQUFOF.so';
|
|
|
|
sub squfof(uint64 $n) returns uint64 is native(LIBSQUFOF) { * };
|
|
|
|
race for (
|
|
11111, # wikipedia.org/wiki/Shanks%27s_square_forms_factorization#Example
|
|
4558849, # example from talk page
|
|
# all of the rest are taken from the FreeBASIC entry
|
|
2501,12851,13289,75301,120787,967009,997417,7091569,13290059,
|
|
42854447,223553581,2027651281,11111111111,100895598169,1002742628021,
|
|
60012462237239, # = 6862753 * 8744663
|
|
287129523414791, # = 6059887 * 47381993
|
|
11111111111111111, # = 2071723 * 5363222357
|
|
384307168202281507, # = 415718707 * 924440401
|
|
1000000000000000127, # = 111756107 * 8948056861
|
|
9007199254740931, # = 10624181 * 847801751
|
|
922337203685477563, # = 110075821 * 8379108103
|
|
314159265358979323, # = 317213509 * 990371647
|
|
1152921505680588799, # = 139001459 * 8294312261
|
|
658812288346769681, # = 62222119 * 10588072199
|
|
419244183493398773, # = 48009977 * 8732438749
|
|
1537228672809128917, # = 26675843 * 57626245319
|
|
4611686018427387877, # = 343242169 * 13435662733
|
|
) -> \data {
|
|
given squfof(data) { say data, " = ", $_, " * ", data div $_ }
|
|
}
|