Comunidad PHPeros
Otros => Los Retos PHPeros => Mensaje iniciado por: good en 20 de Octubre de 2011, 20:10:03 pm
-
dado un número entero, hacer un programa que calcule sus divisores
-
<?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
-
<?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
-
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));
}
-
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
-
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?
-
<?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));
-
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