On 22 April 2010 17:47, Developer Team <d...@thebat.net> wrote: > Awesome source. > Thanks > > On 4/22/10, Richard Quadling <rquadl...@googlemail.com> wrote: >> On 22 April 2010 14:48, Dan Joseph <dmjos...@gmail.com> wrote: >>> On Thu, Apr 22, 2010 at 10:29 AM, Richard Quadling >>> <rquadl...@googlemail.com >>>> wrote: >>> >>>>  > >>>> > It sounds like you are looking for factors. >>>> > >>>> > >>>> http://www.algebra.com/algebra/homework/divisibility/factor-any-number-1.solver >>>> > >>>> > Solution by Find factors of any number >>>> > >>>> > 1252398 is NOT a prime number: 1252398 = 2 * 3 * 7 * 29819 >>>> > Work Shown >>>> > >>>> > 1252398 is divisible by 2: 1252398 = 626199 * 2. >>>> > 626199 is divisible by 3: 626199 = 208733 * 3. >>>> > 208733 is divisible by 7: 208733 = 29819 * 7. >>>> > 29819 is not divisible by anything. >>>> > >>>> > So 29819 by 42 (7*3*2) >>>> > >>>> > would be a route. >>>> >>>> Aha. Missed the "30" bit. >>>> >>>> So, having found the factors, you would need to process them to find >>>> the largest combination under 30. >>>> >>>> 2*3 >>>> 2*3*7 >>>> 2*7 >>>> 3*7 >>>> >>>> are the possibilities (ignoring any number over 30). >>>> >>>> Of which 3*7 is the largest. >>>> >>>> So, 1,252,398 divided by 21 = 59,638 >>>> >>>> >>>> Is that the sort of thing you are looking for? >>>> >>>> >>> >>> Yes, that looks exactly what like what I'm looking for.  I'm going to try >>> and wake up the algebra side of my brain that hasn't been used in years >>> and >>> see if I can digest all this. >>> >>> For the 2, 3, and 7, that is based solely on the last number being >>> divisible >>> by a prime number? >>> >>> Joao, Jason, thanks for the code. >>> >>> -- >>> -Dan Joseph >>> >>> www.canishosting.com - Unlimited Hosting Plans start @ $3.95/month.  Promo >>> Code "NEWTHINGS" for 10% off initial order >>> >>> http://www.facebook.com/canishosting >>> http://www.facebook.com/originalpoetry >>> >> >> This seems to be working ... >> >> <?php >> function findBestFactors($Value, $GroupSize, array &$Factors = null) >>    { >>    $Factors = array(); >>    foreach(range(1, ceil(sqrt($Value))) as $Factor) >>        { >>        if (0 == ($Value % $Factor)) >>            { >>            if ($Factor <= $GroupSize) >>                { >>                $Factors[] = $Factor; >>                } >>            if ($Factor != ($OtherFactor = ($Value / $Factor)) && >> $OtherFactor >> <= $GroupSize) >>                { >>                $Factors[] = $OtherFactor; >>                } >>            } >> >>        if ($Factor >= $GroupSize) >>            { >>            break; >>            } >>        } >> >>    rsort($Factors); >> >>    return reset($Factors); >>    } >> >> echo findBestFactors($argv[1], $argv[2], $Factors), PHP_EOL; >> ?> >> >> >> factors 1252398988 5000 >> >> outputs  ... >> >> 4882 >> >> and 21 for your value 1252398 >> >> -- >> ----- >> Richard Quadling >> "Standing on the shoulders of some very clever giants!" >> EE : http://www.experts-exchange.com/M_248814.html >> EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp >> Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731 >> ZOPA : http://uk.zopa.com/member/RQuadling >> >> -- >> PHP General Mailing List (http://www.php.net/) >> To unsubscribe, visit: http://www.php.net/unsub.php >> >> >
Thank you. It was a quick knock up, so could probably be optimized a little more. It will also not work beyond PHP_MAX_INT, unless the code is converted to use the BCMath or GMP extension. -- ----- Richard Quadling "Standing on the shoulders of some very clever giants!" EE : http://www.experts-exchange.com/M_248814.html EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731 ZOPA : http://uk.zopa.com/member/RQuadling -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php