Hi all! This is a questionable case:
1 list 358358 358358 Cheers, Erling Hellenäs On 2017-11-04 07:28, 'Skip Cave' via Programming 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
