# 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 $_ } }