Well, ok, though that was not a part of your re-specification this time. Actually, though, re-reading your spec, i left out a factor of 16 of the solutions: integers can be negative and as long as we include an even number of negatives they cancel out in a product.
Thanks, -- Raul On Sat, Nov 4, 2017 at 2:28 AM, 'Skip Cave' via Programming <[email protected]> wrote: > Raul, very nice! > > Actually I prefer the solution that doesn't allow 1 as a factor of p. Of > course, that restricts the max number of partitions to the max number of > prime factors of any p. That also greatly reduces the number of partition > instances that will be generated. Then: > > 5 par 358258 > > ┌─┬─┬──┬──┬───┐ > > │2│7│11│13│179│ > > └─┴─┴──┴──┴───┘ > > Skip > > Skip Cave > Cave Consulting LLC > > On Fri, Nov 3, 2017 at 2:40 AM, Raul Miller <[email protected]> wrote: > >> So... 358358 has five prime factors (32 integer factors). We want to >> find all sorted sequences (not sets - values can repeat) of five of >> those factors whose product is 358358. >> >> To restrict our search, we can investigate only those sorted sequences >> of "number of prime factors represented in the variable" whose sum is >> five: >> >> ~./:~"1 (#~ 5=+/"1) 6 #.inv i.6^5 >> 0 0 0 0 5 >> 0 0 0 1 4 >> 0 0 0 2 3 >> 0 0 1 1 3 >> 0 0 1 2 2 >> 0 1 1 1 2 >> 1 1 1 1 1 >> >> In other words, the results of these seven expressions (use >> require'stats' first to get comb): >> >> 1 1 1 1 >> >> 358358 >> (1 1 1,(358358%*/),*/)"1 (4 comb 5){q:358358 >> /:~"1 (1 1 1,(358358%*/),*/)"1 (3 comb 5){q:358358 >> /:~"1 (1 1,q:@(358358%*/),*/)"1 (3 comb 5){q:358358 >> ~./:~"1 (1 1,({.,*/@}.)@q:@(358358%*/),*/)"1 (2 comb 5){q:358358 >> /:~"1 (1,q:@(358358%*/),*/)"1 (2 comb 5){q:358358 >> q:358358 >> >> That's 44 different solutions: >> >> 1 1 1 1 358358 >> 1 1 1 179 2002 >> 1 1 1 13 27566 >> 1 1 1 11 32578 >> 1 1 1 7 51194 >> 1 1 1 2 179179 >> 1 1 1 154 2327 >> 1 1 1 182 1969 >> 1 1 1 143 2506 >> 1 1 1 286 1253 >> 1 1 1 91 3938 >> 1 1 1 77 4654 >> 1 1 1 358 1001 >> 1 1 1 26 13783 >> 1 1 1 22 16289 >> 1 1 1 14 25597 >> 1 1 13 154 179 >> 1 1 11 179 182 >> 1 1 11 13 2506 >> 1 1 7 179 286 >> 1 1 7 13 3938 >> 1 1 7 11 4654 >> 1 1 2 179 1001 >> 1 1 2 13 13783 >> 1 1 2 11 16289 >> 1 1 2 7 25597 >> 1 1 11 14 2327 >> 1 1 7 22 2327 >> 1 1 7 26 1969 >> 1 1 7 143 358 >> 1 1 2 77 2327 >> 1 1 2 91 1969 >> 1 1 2 143 1253 >> 1 11 13 14 179 >> 1 7 13 22 179 >> 1 7 11 26 179 >> 1 7 11 13 358 >> 1 2 13 77 179 >> 1 2 11 91 179 >> 1 2 11 13 1253 >> 1 2 7 143 179 >> 1 2 7 13 1969 >> 1 2 7 11 2327 >> 2 7 11 13 179 >> >> We could of course come up with a routine which does something similar >> for other examples (but we will run into prohibitive resource >> limitations if we allow large enough integers). >> >> So... just to confirm... this is the problem we are trying to solve? >> >> Thanks, >> >> -- >> Raul >> >> >> > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
