elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Programacion PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programacion PHP  (Leído 1,491 veces)
informatico1

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Programacion PHP
« en: 27 Junio 2019, 01:37 am »

Necesito saber como poner para juntar los primos y sacarles el promedio.

Dada una lista de N numeros, calcular el promedio de los primos.

Código
  1. <?php
  2. $valor =$_POST["numero"];
  3. $primo = 0;
  4.  
  5. for ($i=1;$i<=$valor;$i++) {
  6.    if ($valor%$i==0) {
  7.        $primo++;
  8.    }
  9. }
  10.  
  11. if ($primo>=2) {
  12.    echo "Es primo";
  13. } else {
  14.    echo "No es primo";
  15. }
  16. ?>


En línea

@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.397


Turn off the red ligth


Ver Perfil WWW
Re: Programacion PHP
« Respuesta #1 en: 27 Junio 2019, 08:38 am »

Puedes usar un string con el operador de concatenación. Si tienes string con espacios y quieres diferenciar uno de otro, puedes añadirle un símbolo antes de cada string o una palabra/frase con un ID. Así puedes buscarlos por esa frase según ese ID.
Al principio del programa:

Código
  1. static $contador = 0;

Fuera del bucle:

Código
  1. $primoRes = 'Primos:';
  2. $MantenerseEnBucle = true;
  3.  
  4. while($MantenerseEnBucle)
  5. {
  6.  if ($primo >=2)
  7.  {
  8. $contador++;
  9. $primoRes .= "PrimoNum";
  10. $primoRes .= $contador;
  11. $primoRes .= "_es:"
  12. $primoRes .= $primo;
  13. $MantenerseEnBucle = false;
  14.  }
  15. }

Despues para buscar los numeros primos en el string usas un for. Recorres el string caracter por caracter. Si te encuentras una '_' compruebas si los siguientes caracteres son 'e' , 's' y ':'. Entonces ya sabes que los siguientes caracteres desde ':' hasta la 'P' de Primos van a ser los caracteres de tu número primo. Después es cosa tuya lo que hagas. Si lo muestras en pantalla o lo que quieras hacer.

Para sacar el promedio yo usaría otra variable estatica declarada a 0 y dentro del if cada vez que se encuentre un primo le sumo 1 a la variable. Dentro del if también sumo el numero a una variable.
Despues divides las suma de primos entre el valor de la variable static y ya tienes el promedio. Por último si vas a seguir usando el programa, mete la definion de la variable static para resetearla.

Código
  1. if ($primo >= 2)
  2. {
  3. $sumaDePrimos += $primo;
  4. $numDePrimosEnLaSerie++;
  5. }

Cuando no queden primos por comprobar:

Código
  1. $promedio = $sumaDePrimos / $numDePrimosEnLaSerie;

En caso de resetear el programa $numDePrimosEnLaSerie=0;

Si tienes los primos 3 7 y 5
El programa haría esto:
sum 0 + 3
serie 1

sum 3 + 7
serie 2

sum 10 + 5
sum 3

Promedio 15 / 3
Promedio es 5



Mod: Obligatorio el uso de etiquetas GeSHi.


« Última modificación: 24 Septiembre 2019, 11:44 am por #!drvy » En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
algunas dudas en programacion BATCH(nuevo en esto de programacion)
Scripting
stock_C 8 8,995 Último mensaje 19 Junio 2009, 18:08 pm
por frank30
programacion web vs programacion de escritorio
Programación General
lupitapro 2 7,561 Último mensaje 29 Mayo 2010, 05:51 am
por Dreamaker
Programacion Estructurada Vs Programacion Orientada a Objetos
Programación General
79137913 3 8,126 Último mensaje 1 Junio 2011, 18:02 pm
por 79137913
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines