Thanks again, Raul. Well - I'd actually meant ~2^24 odd numbers, 1... _1+2^25 - trust me to make a mistake in trying to simplify the presentation! Let's call it a typo.
I don't think my post was a spoiler, as the problem needs quite a bit of insight elsewhere; this array helps in getting the answer. You're right, of course, for that expression, ~50 seconds on this laptop, which produces one extended scalar result, but unfortunately I need the whole vector of cumulative products, 1 3 15 105... These time and space tests are for lower size arrays: 1 ts'281474976710656&|@*/\x:1+2*i.2^10' 1.90882 628864 1 ts'datatype 281474976710656&|@*/\x:1+2*i.2^11' 7.91167 1.25146e6 1 ts'q =: 281474976710656&|@*/\x:1+2*i.2^12' 30.8606 2.49638e6 7!:5<'q' NB. space required for ~2^12 extended elements. 589824 2 10 >.@^.589824 NB. rounded up log 2 & log 10 space. 20 6 So 2^24 elements are likely to need around 2^40, 10^12 bytes. This laptop only has about 16GB. So, I think the cludgy "cumoddprod" or its like remains the answer for a few more Moore cycles! Thanks, Mike On 16/05/2017 13:44, Raul Miller wrote:
Forgive me for asking, but isn't 33554431 = _1+2^25 ? Anyway, this seems to work for me: 281474976710656&|@*/x:1+2*i.2^23 I'll leave out the answer, out of respect for project euler (though maybe the rules allow that now?). timespacex'281474976710656&|@*/x:1+2*i.2^23' 12.457 1.67937e9 ... and needs about 13 seconds and about 2 gig ram. That said, I suppose it would be nice if x m&|@* y worked reliably for fixed precision integers x, m and y Thanks,
--- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm