Autor
|
Tema: factorización de un número (Leído 3,903 veces)
|
estudiante_1
Desconectado
Mensajes: 47
|
Hola, he hecho un programa que me factoriza un número. Me da error, y yo creo que el error está en dónde poner la función return. #include<stdio.h> #include<stdlib.h> #include<math.h>
int divide(int n,int divisores){ divisores=2; while(n>=divisores){ while(n%divisores==0){ n=n/divisores;
} divisores++;
}
return(divisores); }
int main(void){ int n,divisores; printf("dime el numero\n"); scanf("%d",&n); printf("%d\n",divide(n,divisores));
system("pause"); return(0);
}
|
|
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
A ver:
Presentas el código muy desordenado. Para ti, si haces pruebas y lo puedes entender sigue con él, pero cuándo vayas a presentarlo a más gente ordenalo. Sigue algunas reglas de estructuración. Sé coherente.
Por otra parte pasas como argumentos a las funciones variables que después resultan ser locales de la función.
Estos errores los vas repitiendo post tras post y creo que te los han a corregido numerosas veces.
|
|
|
En línea
|
|
|
|
fary
|
El código compila correctamente no sé que problema tienes con el... #include <stdio.h> #include <stdlib.h> #include <math.h> int divide(int n,int divisores) { divisores = 2; while(n >= divisores) { while(n%divisores == 0) { n /= divisores; } divisores++; } return(divisores); } int main() { int n,divisores; printf("%d\n",divide (n , divisores )); return(0); }
Ordena el código porque eso que as puesto es un desastre, normal que no encuentres los errores. saludos.
|
|
|
En línea
|
Un byte a la izquierda.
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
#include <stdio.h> unsigned divide(unsigned n) { unsigned divisores = 1; unsigned divisor = 2; while(n > 1) { if(n % divisor == 0) { n /= divisor; divisores++; } else divisor++; } return(divisores); } int main() { unsigned n; return 0; }
|
|
« Última modificación: 15 Enero 2016, 19:23 pm por MAFUS »
|
En línea
|
|
|
|
Yoel Alejandro
|
Bueno, al margen de que todas las respuestas anteriores están muy bien y el programa corre perfectamente, tengo una pequeña pregunta respecto al propósito del problema.
¿Se trata de todos los divisores (enteros) del número, o sólo de los divisores primos?
Por ejemplo, probando el programa para el número 24 daría 4 divisores, a saber:
2, 2, 2, 3
Estos divisores así calculados serán primos, pero en realidad son sólo dos divisores distintos: 2 y 3. Faltarían las combinaciones:
1, 2, 3, 4, 6, 12, 24
Entonces, divisores distintos son 7 (5 si se excluyen la unidad y el propio 24), y primos son sólo 2. ¿Qué es lo que se quiere?
|
|
|
En línea
|
Saludos, Yoel. P.D..- Para mayores dudas, puedes enviarme un mensaje personal (M.P.)
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ejercicio: factorización de un número, creación de "palabras" [python]
Ejercicios
|
Ragnarok
|
1
|
9,972
|
21 Julio 2009, 20:46 pm
por Ragnarok
|
|
|
[RETO] Funcion iFactorize() - Factorizacion de numeros enteros
« 1 2 »
Programación Visual Basic
|
Karcrack
|
15
|
11,772
|
19 Julio 2010, 17:19 pm
por FFernandez
|
|
|
[Aporte] Factorización Relativamente Rápida - Actualizado 18/08/2012 -
.NET (C#, VB.NET, ASP)
|
Keyen Night
|
0
|
5,235
|
15 Marzo 2011, 04:38 am
por Keyen Night
|
|
|
MSIEVE factorización
Software
|
Partel
|
2
|
2,574
|
18 Diciembre 2012, 19:36 pm
por Partel
|
|
|
Introducción a la Factorización De Semiprimos (RSA)
Criptografía
|
kub0x
|
2
|
23,550
|
24 Octubre 2024, 18:33 pm
por Bad4m_cod3
|
|