Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Geo_Jervin en 14 Marzo 2009, 02:55 am



Título: Ayuda encontrar Primos en dos Matrices para sumarlos
Publicado por: Geo_Jervin en 14 Marzo 2009, 02:55 am

Lo que tengo que hacer es que me busque en las dos matrices los números Primos y s estos coinciden ( 2,2 en matriz a y 2,2 en matriz b son primos entonces que los sume) pero no he podido hacer que me funcione este es el código que he hecho para que le echen un ojo y me digan que es lo que tengo mal.

Código:

/*Parte anterior del programa

A+B Primos */

if ($_REQUEST['Opcion']=='A+B Primos') {

echo"<tr>";
echo"<td>";
echo"<font color=red><b>A+B Primos</b></font><br>";
echo"<table border=4  color=red cellspacing=20>";
for ($a=1; $a<=3; $a++)
{
echo"<tr>";
for ($b=1; $b<=3; $b++)
{

$primo=True;
$divisor=2;
$e=$m[$a][$b]+$n[$a][$b];
while (($divisor < $m[$a][$b]) and $primo) {

                   if ( $m[$a][$b]%$divisor == 0) {
$primo=False;
$divisor=$divisor+1;
}
}

$primo1=True;
$divisor=2;
while (($divisor < $n[$a][$b]) and $primo1) {

                    if ($n[$a][$b]%$divior == 0) {

$primo1=False;
$divisor=divisor+1;

}
}

if (($primo==True) and ($primo1==True)) {
              echo"<td><font color=white>".$e."</font></td>";
             
  }
    else
  {
  echo "<td><font color=white>"."0"."</font></td>";
  };
};
               echo"</tr>";
             }; echo "</table>";

echo"</td>";
echo "</tr>";
echo"<table>";
}

//continua programa

espero que me puedan ayudar por favor que no he podido hacer que funcione esta cosa.


Título: Re: Ayuda encontrar Primos en dos Matrices para sumarlos
Publicado por: Agente Naranja en 14 Marzo 2009, 18:56 pm
He tratado de mirar tu código pero me tiraba un par de errores y mirándo por encima no le encontraba sentido, y me dió un poco de pereza mirarlo a fondo sin saber lo que tú querías hacer.

¿Se trata de buscar dos números primos en cada matriz, el mismo número primo en ambas matrices, encontrar números primos de cada matriz y si coinciden sumarlos...?


Título: Re: Ayuda encontrar Primos en dos Matrices para sumarlos
Publicado por: Geo_Jervin en 15 Marzo 2009, 00:01 am
Lo que quiero saber es si el numero en $m[$a][$b] y en  $n[$a][$b]   es primo y si es así que se sumen e impriman de lo contrario que imprima un 0.



Título: Re: Ayuda encontrar Primos en dos Matrices para sumarlos
Publicado por: HardieVon en 15 Marzo 2009, 08:13 am
Código
  1. <?php
  2. if ($_REQUEST['opcion']=='primos') {
  3. echo"<tr>
  4. <td>
  5. <font color=red><b>A+B Primos</b></font><br>
  6. <table border=4  color=red cellspacing=20>";
  7. for ($a=1; $a<=3; $a++){
  8. echo"<tr>";
  9. for ($b=1; $b<=3; $b++){
  10. $primo=true;
  11. $divisor=2;
  12. $e=$m[$a][$b]+$n[$a][$b];
  13. while (($divisor < $m[$a][$b]) and $primo) {
  14. if ( $m[$a][$b]%$divisor == 0){
  15. $primo=False;
  16. $divisor=$divisor+1;
  17. }
  18. }
  19. $primo1=true;
  20. $divisor=2;
  21. while (($divisor < $n[$a][$b]) and $primo1) {
  22. if ($n[$a][$b]%$divior == 0) {
  23. $primo1=true;
  24. $divisor=divisor+1;
  25. }
  26. }
  27. if ($primo and $primo1) {
  28. echo"<td>".$e."</td>";      
  29. }else{
  30. echo "<td>"."0"."</td>";
  31. }
  32. }
  33. echo"</tr>";
  34. }
  35. echo "</table>
  36. </td>
  37. </tr>
  38. <table>";
  39. }
  40. ?>

Esta bien mal hecho man primero aprende a programar.

a si pero te decia.  las matrices nunca tienen valor.

pega todo el source o almenos una simulacion de las matrices.


Título: Re: Ayuda encontrar Primos en dos Matrices para sumarlos
Publicado por: Agente Naranja en 15 Marzo 2009, 10:30 am
Supongo que el valor de las matrices lo obtiene en alguna parte del código anterior, justo donde dice //*Parte anterior del programa.

El algoritmo debería funcionar, pero yo arreglaría lo siguiente:

- Fijate que el código dentro de ambos WHILE se repite:
Código
  1. while (($divisor < $m[$a][$b]) and $primo) {
  2. if ( $m[$a][$b]%$divisor == 0){
  3. $primo=False;
  4. $divisor=$divisor+1;
  5. }
  6. }
  7. $primo1=true;
  8. $divisor=2;
  9. while (($divisor < $n[$a][$b]) and $primo1) {
  10. if ($n[$a][$b]%$divior == 0) {
  11. $primo1=true;
  12. $divisor=divisor+1;
  13. }
  14. }

Aunque no sea demasiado código, la verdad es que sería más eficiente si unieras ambos WHILE y examinaras ambas matrices a la vez, ahorrarías tiempo.

Código
  1. $primos = true;
  2. $divisor = 2;
  3. while( ($divisor <$m[$a][$b]) && ( $divisor < $n[$a][$b]) ){
  4.   if( ( $m[$a][$b] % $divisor  == 0 )&& ( $n[$a][$b] %$divisor == 0 ) ){
  5.    $primos = false;
  6.   }
  7. }
  8. if ($primos){
  9.   echo $m[$a][$b] + $n[$a][$b];
  10. }


Título: Re: Ayuda encontrar Primos en dos Matrices para sumarlos
Publicado por: Geo_Jervin en 15 Marzo 2009, 15:19 pm
HansVon: Es que recién comienzo con este lenguaje de programación


agente_naranja: Voy a probar haciendo lo que decis, gracias por la ayuda XD