Hi all!

New list, which in my opinion does not answer the quora question.

list=:4 : 0
v=.q: y
if. (#v)<x do.
  r=:(0,x)$0
else.
  r1=.x parRuskeyE #v
  r2=. >r1 (*/)@:{&.>"1 0 < v
  r3=./:~"1 r2
  r=. ~.r3
end.
r
)

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

Reply via email to