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
..
2017-10-05 15:19:25 +02:00
2018-12-28 03:20:17 +01:00
2018-11-29 11:44:10 +01:00
2019-11-17 17:06:31 +01:00
2020-10-01 21:52:16 +02:00
2020-10-01 21:52:16 +02:00
2017-08-04 19:55:01 +02:00
2018-12-28 03:20:17 +01:00
2018-12-28 03:20:17 +01:00
2018-06-06 15:16:48 +02:00
2020-12-13 22:34:05 +01:00
2019-07-02 11:35:03 +02:00
2020-11-28 23:21:13 +01:00
2020-12-14 20:27:57 +01:00
2019-07-02 11:35:03 +02:00
2018-12-28 03:20:17 +01:00
2018-12-28 03:20:17 +01:00
2019-02-19 17:08:39 +01:00
2019-07-02 11:35:03 +02:00
2019-07-02 11:35:03 +02:00
2020-06-09 15:40:49 +02:00
2019-07-02 11:35:03 +02:00
2020-12-22 20:24:30 +01:00
2017-07-21 09:50:55 +02:00
2017-10-05 15:19:25 +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
2019-07-02 11:35:03 +02:00
2017-01-10 15:13:30 +01:00
2018-12-28 03:20:17 +01:00
2020-12-13 22:34:05 +01:00
2019-07-02 11:35:03 +02:00
2019-05-26 13:53:41 +02:00
2020-11-27 15:55:46 +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
2020-12-13 22:34:05 +01:00
2017-10-05 15:19:25 +02:00
2018-12-28 03:20:17 +01:00
2020-11-30 13:03:03 +01:00
2017-08-02 14:26:33 +02:00
2020-12-13 22:34:05 +01:00
2018-12-28 03:20:17 +01:00
2019-07-02 11:35:03 +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
2019-07-02 11:35:03 +02: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
2017-09-18 16:28:43 +02:00
2019-01-07 15:20:56 +01:00
2020-12-18 04:12:51 +01:00
2020-11-30 13:03:03 +01:00
2020-12-13 19:04:19 +01:00
2020-11-30 13:03:03 +01:00
2018-12-28 03:20:17 +01:00
2019-04-02 14:55:29 +02:00
2018-12-28 03:20:17 +01:00
2019-07-02 11:35:03 +02:00
2019-10-07 14:25:45 +02:00
2020-11-30 13:03:03 +01:00
2020-12-18 04:12:51 +01:00
2018-12-28 03:20:17 +01:00
2019-07-02 11:35:03 +02: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
2019-07-02 11:35:03 +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