Calcular facotiral de los n primeros numeros primos

Publicado en 'Programación' por Anderson95, 4 Jun 2013.





  1. Anderson95

    Anderson95 Miembro maestro

    Registro:
    14 Dic 2010
    Mensajes:
    250
    Likes:
    3




    Se como hallar el facotiral pero alguien podria ayudarme con el codigo porfavor enserio es urgente

    Es si inserto 7 que me devuelve el factorial de los 7 primeros numeros primos graicas
     


  2. kakasi

    kakasi Miembro maestro

    Registro:
    9 Ago 2009
    Mensajes:
    358
    Likes:
    43
    primero enkuentra el metodo matematiko y luego planteas en kodigo, y para eso tienes k revizar un libro de matematikas, si tienes el metodo para sakar factorial, solo tienes k sakar el kodigo de fuente k es solo pasar de lo matematiko a kodigo .
     
    Última edición: 4 Jun 2013
  3. dheybigrover

    dheybigrover Miembro frecuente

    Registro:
    25 Oct 2009
    Mensajes:
    111
    Likes:
    18
    Int factorial(int n)
    {
    if(n==1 || n ==0)
    return 1;
    if(n>1)
    return n*factorial(n—1);


    }

    no lo eh probado, pero algo así es la solución
     
  4. eduar2083

    eduar2083 Miembro frecuente

    Registro:
    26 Jul 2011
    Mensajes:
    224
    Likes:
    46
    Hola. El problema no es muy complicado, yo optaría por crear 2 funciones: Una para determinar si un número es primo y otra para hallar su factorial. Sólo es cuestión de aplicar este par de algoritmos.
    Te posteo la solución en Lenguaje C, fácilmente la puedes portar al lenguaje que desees.
    Código:
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    
    int esPrimo(double v)
    {
       double i;
    
       for(i = (unsigned)sqrt(v); i > 1 && fmod(v, i); i--)
          ;
    
       return i == 1;
    }
    
    double factorial_recursivo(const int num)
    {
    	if (num == 0 || num == 1)
    		return 1;
    	else
        	return (num * factorial_recursivo(num - 1));
    }
    
    int main(void)
    {
        int n;
        int i;
        int cuenta;
    
        printf("Ingrese n: ");
        fflush(stdout);
        if (scanf("%d", &n) != 1) return EXIT_FAILURE;
    
        cuenta = 0;
        for (i = 2; cuenta < n; ++i) {
            if (esPrimo(i)) {
                cuenta++;
                printf("%d! = %.0f\n", i, factorial_recursivo(i));
            }
        }
    
        return EXIT_SUCCESS;
    }
    
    No habrá problema para encontrar una considerable cantidad de números primos, pero sí para calcular su factorial, ya que este crece de manera exponencial a medida que el número vaya aumentado, tal es así que la variable para almacenarlo se desbordará.

    Saludos.
     
  5. e.acostaz

    e.acostaz Miembro nuevo

    Registro:
    21 Jul 2012
    Mensajes:
    22
    Likes:
    1
    Di si solucionaste tu caso sino para ayudarte, y pon el lenguaje de programación para ser mas directos.

    Saludos!
     
  6. subaki

    subaki Miembro nuevo

    Registro:
    27 May 2013
    Mensajes:
    13
    Likes:
    0
    .................