Ayuda encontrar Primos en dos Matrices para sumarlos

Iniciado por Geo_Jervin, 14 Marzo 2009, 02:55 AM

0 Miembros y 1 Visitante están viendo este tema.

Geo_Jervin


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.



/*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.

Agente Naranja

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...?

Geo_Jervin

#2
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.


HardieVon

Código (php) [Seleccionar]
<?php
if ($_REQUEST['opcion']=='primos') {
echo
"<tr>
<td>
<font color=red><b>A+B Primos</b></font><br>
<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=true;
$divisor=divisor+1;
}
}
if ($primo and $primo1) {
echo"<td>".$e."</td>";       
}else{
echo "<td>"."0"."</td>";
}
}
 echo"</tr>";

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


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.

Agente Naranja

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 (php) [Seleccionar]
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=true;
$divisor=divisor+1;
}
}


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 (php) [Seleccionar]
$primos = true;
$divisor = 2;
while( ($divisor <$m[$a][$b]) && ( $divisor < $n[$a][$b]) ){
   if( ( $m[$a][$b] % $divisor  == 0 )&& ( $n[$a][$b] %$divisor == 0 ) ){
    $primos = false;
   }
}
if ($primos){
   echo $m[$a][$b] + $n[$a][$b];
}

Geo_Jervin

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