Autor Tema: calcular divisores  (Leído 5533 veces)

Desconectado good

  • PHPerit@
  • *
  • Mensajes: 49
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
calcular divisores
« en: 20 de Octubre de 2011, 20:10:03 pm »
dado un número entero, hacer un programa que calcule sus divisores

Comunidad PHPeros

calcular divisores
« en: 20 de Octubre de 2011, 20:10:03 pm »

Desconectado tuadmin

  • PHPerit@
  • *
  • Mensajes: 9
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:calcular divisores
« Respuesta #1 en: 21 de Octubre de 2011, 05:37:05 am »
Código: [Seleccionar]
<?php
function mostrar_divisores($n)
{
for($i =1;$i <= $n;$i++)
{
if($n $i == 0){
echo "$i es divisor de $n\n";
}
}
}
mostrar_divisores(10);
vaya que tarde es :) me gustaria saber si se puede optimizar esto

Desconectado good

  • PHPerit@
  • *
  • Mensajes: 49
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:calcular divisores
« Respuesta #2 en: 21 de Octubre de 2011, 14:18:15 pm »
Código: [Seleccionar]
<?php
function mostrar_divisores($n)
{
for($i =1;$i <= $n;$i++)
{
if($n $i == 0){
echo "$i es divisor de $n\n";
}
}
}
mostrar_divisores(10);
vaya que tarde es :) me gustaria saber si se puede optimizar esto

no me vale, le tendrías que hacer un apaño minúsculo xD
« Última modificación: 21 de Octubre de 2011, 14:25:20 pm por good »

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:calcular divisores
« Respuesta #3 en: 21 de Octubre de 2011, 15:16:25 pm »
Lo más básico que se me ocurre es:

function divisores($n$devolver_divisores false) {
$arr = array();
for(
$i=1;$i<=floor($n/2);$i++) {
if(
$n%$i == 0) { $arr[] = $i; }
}
return (
$devolver_divisores $arr count($arr));
}

Desconectado good

  • PHPerit@
  • *
  • Mensajes: 49
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:calcular divisores
« Respuesta #4 en: 22 de Octubre de 2011, 18:42:54 pm »
Lo más básico que se me ocurre es:

function divisores($n$devolver_divisores false) {
$arr = array();
for(
$i=1;$i<=floor($n/2);$i++) {
if(
$n%$i == 0) { $arr[] = $i; }
}
return (
$devolver_divisores $arr count($arr));
}


tampoco, esto no devuelve todos los divisores

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:calcular divisores
« Respuesta #5 en: 23 de Octubre de 2011, 00:28:22 am »
tampoco, esto no devuelve todos los divisores
Oh, dios, en serio?

function divisores($n$devolver_divisores false) {
$arr = array();
for(
$i=1;$i<=floor($n/2);$i++) {
if(
$n%$i == 0) { $arr[] = $i; }
}
$arr[] = $n;
return (
$devolver_divisores $arr count($arr));
}

Así te sirve?

Desconectado tuadmin

  • PHPerit@
  • *
  • Mensajes: 9
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:calcular divisores
« Respuesta #6 en: 23 de Octubre de 2011, 03:34:24 am »
<?php
//creo que no se necesita explicar este codigo :)
function mostrar_divisores_2($n,& $contenedor)
{
   $contenedor=array();
   for($i =1;$i <= $n;$i++)
   {
      if($n % $i != 0){continue;}
      $contenedor[] = $i;
   }
}
$numero = 10;
mostrar_divisores_2($numero,$los_divisores_son);
printf("existe '%s' divisores para el numero:%s\n",
   count($los_divisores_son),
   $numero,
   implode(" , ",$los_divisores_son));

Desconectado good

  • PHPerit@
  • *
  • Mensajes: 49
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:calcular divisores
« Respuesta #7 en: 01 de Noviembre de 2011, 18:21:12 pm »
Oh, dios, en serio?

function divisores($n$devolver_divisores false) {
$arr = array();
for(
$i=1;$i<=floor($n/2);$i++) {
if(
$n%$i == 0) { $arr[] = $i; }
}
$arr[] = $n;
return (
$devolver_divisores $arr count($arr));
}

Así te sirve?

esto soluciona el 50% de los casos