Cita:
Iniciado por ssaammuu No entiendo muy bien la pregunta.
El resultado de factorial() es erroneo para valores de num>25 ya que el tipo int (y en la mayoría de los casos long tiene el mismo tamaño que simplemente int) no tiene suficiente capacidad para guardar el valor del factorial de 26.
esto me parece innecesario ya que solo aceptas números mayores de 0, por lo que abs no hace nada ahí.
El problema es con el 2do for, "for(j=2 ; j<=a/2 ; j++)"... El primer for se realiza hasta el numero que el usuario introdujo(Ej: 50).... el 2do for nunca se cumple ya que en el primer for a=2 y 2/2=1, asi con TODOS los demas numeros.... y en caso de que lo hiciera no llegaria simplemente hasta 25(A/2)?