phpnumbersfactoring

Find what 2 numbers add to something and multiply to something


Hey so I'm making a factoring program and I'm wondering if anyone can give me any ideas on an efficient way to find what two numbers multiple to a specified number, and also add to a specified number.

for example I may have

(a)(b) = 6

a + b = 5

So essentially i just need a way to find the a and b values. In this case they would be 2 and 3.

Can anyone give me any ideas on where to start? Negative numbers must also be considered for use.


Solution

  • There is no need to loop, just use simple math to solve this equation system:

    a*b = i;

    a+b = j;

    a = j/b;

    a = i-b;

    j/b = i-b; so:

    b + j/b + i = 0

    b^2 + i*b + j = 0

    From here, its a quadratic equation, and it's trivial to find b (just implement the quadratic equation formula) and from there get the value for a.

    There you go:

    function finder($add,$product)
    {
    
     $inside_root = $add*$add - 4*$product;
    
     if($inside_root >=0)
     {
    
         $b = ($add + sqrt($inside_root))/2;
         $a = $add - $b;
    
         echo "$a+$b = $add and $a*$b=$product\n";
    
     }else
     {
       echo "No real solution\n";
     }
    }
    

    Real live action:

    http://codepad.org/JBxMgHBd