I'd use a hash of primes as keys, powers of those as the values. Decompose each element of each list into primes. For the numerator list, increase the primes power value. For the denominator list, decrease it:

my @a = qw(1 4 6 2 7 87 5 6 4 32); my @b = qw(86 50 62 41 32); my %primes; map { $primes{$_}++ } map { primes($_) } @a; map { $primes{$_}-- } map { primes($_) } @b; sub primes { ... # left as an exercise for the reader }

Then just compute the product of the powers:

$result *= $_ ** $primes{$_} for keys %primes;

And this last line is where the discussion in BrowserUk's early question kicks in, with regards to accuracy, overflow, timing etc. Should we sort the keys? is there a more efficient way to produce the division with partial powers of positive and negative exponents? Is there a way to keep the intermediate results close to zero?

My aim is to multiply integers within a given array and then divide two arrays

This is an XY Problem - for division/factorial you don't have to precompute each term.

perl -le'print map{pack c,($-++?1:13)+ord}split//,ESEL'

In reply to Re: Fraction Cancelation by shmem
in thread Fraction Cancelation by baxy77bax

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.