Re: Math Question....

From: Date: Thu, 22 Apr 2010 16:16:57 +0000
Subject: Re: Math Question....
References: 1 2 3 4 5 6 7  Groups: php.general 
Request: Send a blank email to php-general+get-304434@lists.php.net to get a copy of this message
On 22 April 2010 14:48, Dan Joseph <dmjoseph@gmail.com> wrote: > On Thu, Apr 22, 2010 at 10:29 AM, Richard Quadling <rquadling@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

« previous php.general (#304434) next »