(i.>./)  gives the (first) index of the maximum.

R.E. Boss

(Add your info to http://www.jsoftware.com/jwiki/Community/Demographics )



> -----Original Message-----
> From: [email protected] [mailto:programming-
> [email protected]] On Behalf Of Jon Hough
> Sent: donderdag 12 juni 2014 7:37
> To: [email protected]
> Subject: [Jprogramming] Maximum totient ratio
> 
> Another Project Euler...
> 
> This time PE #69:  http://projecteuler.net/problem=69
> 
> Essentially, find n which has the maximum of n/totient(n), for all
positive
> integers, n, up to 1000000.
> 
> At first this seemed easy. I have a verb to calculate the ratio:
> totient=: (- ~:)&.q:
> func =.   ] % totient
> then I can find the maximum:
> max=. (>./)"1@:((] % totient)"0)
> 
> max 1+i.1000000
> 5.53939
> But this gives me the ratio. I need to find n.
> This is a problem, because finding the maximum, the verb, >./ , collapsed
the
> array so I don't think I can use I. or similar verb to get the index which
gave
> the maximum ratio. So I am not sure how to find the n which gave this
ratio.
> 
> A second issue is I think my method seems to not be well thought out
> memory-wise. My method first calculates the ratio for every integer up to
1
> million and holds them all in memory. Surely a better way would be to do
> them one at a time and find the maximum as we go.
> In J I am not sure how to do this. I am guessing the recursion verb $:
will need
> to be used.
> Any help appreciated.
> Regards.
> ----------------------------------------------------------------------
> 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