Autor
|
Tema: Programa que factorize números enteros (Leído 3,718 veces)
|
Einstein92
Desconectado
Mensajes: 3
|
Buenas a todos, tengo un problema al ejecutar el código de un programa, resulta que se queda colgado y dice "Factorizar.exe" dejó de funcionar, y no tengo ni idea de por qué, ya que no veo nada en el código mal . El enunciado del ejercicio es el siguiente: - Descomponer un número entero en sus factores primos. Y mi solución esta: #include<stdio.h> #include<stdlib.h> int Factor(int a){ int b=2; while (a%b!=0) b++; return (b); } int main(void){ int x,y,cociente; printf("Introduzca un numero entero: "); scanf("%d",x); y=Factor(x); while(y>1){ printf("%d\n",y); cociente=x/(Factor(x)); y=Factor(cociente); } system("pause"); return 0; } Puesto que todavía no sabemos hacer que una función devuelva más de un valor, he creado una función que me devuelve el primer factor primo, y con un bucle la voy llamando varias veces, cambiando el valor del parámetro de entrada por el siguiente cociente, hasta que el factor que me devuelva sea igual o menor a 1. ¿Qué problema hay? Seguramente esté en el código... :| Un saludo y gracias por adelantado.
|
|
|
En línea
|
|
|
|
vangodp
Desconectado
Mensajes: 455
|
scanf("%d",&x); le falta el & delante de la x. Aún que hay mas errocillos, pero esos lo arreglas tu, ya no se cuerga XD
|
|
« Última modificación: 25 Enero 2014, 13:58 pm por vangodp »
|
En línea
|
|
|
|
Einstein92
Desconectado
Mensajes: 3
|
Muchas gracias !! Me lleve media hora viendo que era y no me dí cuenta jaja!! Además ya solucioné el resto del código (tenía un par de cosas mal en mi algoritmo), os lo dejo por si me podéis dar alguna mejora.
#include<stdio.h> #include<stdlib.h>
int Factor(int a){ int b=2;
while (a%b!=0) b++; if(a==1) b=1; return (b); }
int main(void){ int x,y; printf("Introduzca un numero entero: "); scanf("%d",&x);
if(x==1||x==-1) printf("1\n");
else{ y=Factor(x); while(Factor(x)>1){ printf("%d\n",y); x=x/(Factor(x)); y=Factor(x); } }
system("pause"); return 0; }
Gracias de nuevo!!
|
|
|
En línea
|
|
|
|
engel lex
|
Einstein92 para publicar codigo usa las etiquetas GeSHi que hay arriba de los emoticonos a la derecha, si no, se más dificil de leer #include<stdio.h> #include<stdlib.h> int Factor(int a){ int b=2; while (a%b!=0) b++; if(a==1) b=1; return (b); } int main(void){ int x,y; printf("Introduzca un numero entero: "); scanf("%d",&x); if(x==1||x==-1) printf("1\n"); else{ y=Factor(x); while(Factor(x)>1){ printf("%d\n",y); x=x/(Factor(x)); y=Factor(x); } } system("pause"); return 0; }
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
|
Einstein92
Desconectado
Mensajes: 3
|
para publicar codigo usa las etiquetas GeSHi que hay arriba de los emoticonos a la derecha, si no, se más dificil de leer
Perdona, tomo nota para la próxima Le he echado un vistazo, aunque hay conceptos que me superan jajaja. Curiosamente, el ejercicio anterior a este era el de realizar una función que calcule si un número es primo. No le vi aparente dificultad al algoritmo, pero no me ha llegado a funcionar mi código (y eso que no veo fallo alguno), ya que siempre me da que es primo o si cambio una cosa, que no es primo Les dejo el código aqui por si ven el fallo.. int Primo1(int a){ int b=2; while((a%b!=0)&&(b<=(a/2))) b++; if(a%(b-1)==0) return(-1); else return(1); } int main(void){ int x,y; y=Primo1(x); if(y ==1) printf("Es primo \n"); else printf("No es primo \n"); return 0; }
Un saludo !!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
number_format() y numeros enteros (Solucionado)
« 1 2 »
PHP
|
Littl3
|
10
|
14,603
|
14 Octubre 2010, 17:34 pm
por ~ Yoya ~
|
|
|
mantisa,numeros reales,enteros caracter
Programación C/C++
|
mxsoun
|
1
|
3,146
|
5 Septiembre 2011, 19:25 pm
por Eternal Idol
|
|
|
50 números enteros introducidos por teclado
Programación C/C++
|
douglascarvallo
|
4
|
5,115
|
23 Junio 2013, 06:58 am
por douglascarvallo
|
|
|
Pasar numeros enteros arábigos a romanos, por donde empezar.
« 1 2 3 »
Programación C/C++
|
Caster
|
21
|
12,645
|
18 Mayo 2014, 18:38 pm
por Blaster
|
|
|
Programa que lea números enteros y nos diga cuántos números son pares.
Programación C/C++
|
estudiante_1
|
3
|
3,410
|
20 Agosto 2015, 18:58 pm
por estudiante_1
|
|