busybox/coreutils
Denys Vlasenko 6452c30036 factor: detect squares
If we have a square, the speedup can be extremely large
(in best case example below, it's ~40000 times faster):

$ time ./busybox_old factor 18446743988964486098
18446743988964486098: 2 3037000493 3037000493
real	0m4.246s
$ time ./busybox factor 18446743988964486098
18446743988964486098: 2 3037000493 3037000493
real	0m0.000s

function                                             old     new   delta
isqrt_odd                                              -      57     +57
print_w                                                -      36     +36
factorize                                            218     236     +18
print_h                                                -       7      +7
factorize_numstr                                      65      72      +7
------------------------------------------------------------------------------
(add/remove: 3/0 grow/shrink: 2/0 up/down: 125/0)             Total: 125 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-12-22 20:24:30 +01:00
..
2018-12-28 03:20:17 +01:00
2018-11-29 11:44:10 +01:00
2018-12-28 03:20:17 +01:00
2018-12-28 03:20:17 +01:00
2020-12-14 20:27:57 +01:00
2018-12-28 03:20:17 +01:00
2018-12-28 03:20:17 +01:00
2020-12-22 20:24:30 +01:00
2017-07-21 09:50:55 +02:00
2018-12-28 03:20:17 +01:00
2018-12-28 03:20:17 +01:00
2020-12-13 19:04:19 +01:00
2018-12-28 03:20:17 +01:00
2020-12-13 19:04:19 +01:00
2018-12-28 03:20:17 +01:00
2018-12-28 03:20:17 +01:00
2018-12-28 03:20:17 +01:00
2018-12-28 03:20:17 +01:00
2018-12-28 03:20:17 +01:00
2018-12-28 03:20:17 +01:00
2017-08-02 14:26:33 +02:00
2018-12-28 03:20:17 +01:00
2018-12-28 03:20:17 +01:00
2018-12-28 03:20:17 +01:00
2018-12-28 03:20:17 +01:00
2020-12-13 19:04:19 +01:00
2018-12-28 03:20:17 +01:00
2018-12-28 03:20:17 +01:00
2019-01-07 15:20:56 +01:00
2020-12-18 04:12:51 +01:00
2020-12-13 19:04:19 +01:00
2018-12-28 03:20:17 +01:00
2018-12-28 03:20:17 +01:00
2019-10-07 14:25:45 +02:00
2020-12-18 04:12:51 +01:00
2018-12-28 03:20:17 +01:00
2017-07-21 09:50:55 +02:00
2018-12-28 03:20:17 +01:00
2018-12-28 03:20:17 +01:00
2018-12-28 03:20:17 +01:00
2020-12-18 04:12:51 +01:00
2018-12-28 03:20:17 +01:00
2018-12-28 03:20:17 +01:00
2020-11-28 14:22:52 +01:00
2018-12-28 03:20:17 +01:00
2018-12-28 03:20:17 +01:00
2018-12-28 03:20:17 +01:00
2018-12-28 03:20:17 +01:00