On 4/27/22 16:14, Pádraig Brady wrote: > On 27/04/2022 11:07, Rasmus Villemoes wrote: >> When factoring numbers that have a large 2^n factor, it can be hard to >> eyeball just how many 2's there are. Add an option to print each prime >> power factor in the x^y format (omitting the exponent when it is 1). >> >> * src/factor.c: Add --exponents option for printing in x^y format. >> >> Signed-off-by: Rasmus Villemoes <rasmus.villem...@prevas.dk> > > Thanks for the suggestion. > This is one of those borderline cases. > > Mainly because it's fairly easy to postprocess the output. > Consider for example: > > $ factor 13 36 | tr ' ' '\n' | uniq -c > 1 13: > 1 13 > 1 36: > 2 2 > 2 3 > > Though for interactive use, the new option is a benefit. > > Given the interactive benefit and a previous request to add this > functionality¹ > I'm tentatively leaning towards adding this. > > cheers, > Pádraig > > ¹ https://lists.gnu.org/archive/html/coreutils/2017-11/msg00015.html
Regarding the postprocess solution: this is a little awk(1) snippet to get the same output as with the patch: $ factor 13 36 | tr ' ' '\n' | uniq -c | awk '\ BEGIN { n="" } /:$/ { printf("%s%s", n, $2); n="\n"; next }; { printf(" %s%s", $2, ($1>1?"^"$1:"")); } END {printf("%s",n); } ' 13: 13 36: 2^2 3^2 Re. the patch: the implementation is quite clean in 2 places - the LONGINT_OK and the MPZ case - and doesn't seem to get into the way of any future extensions (null-separated output, whatever). Therefore, I'm also 70:30 for adding it. Of course, we'd also need a long option and texinfo documentation. Finally, regarding '-e': is there any precedence (or a clashing option) in any other factor(1) implementation? Have a nice day, Berny