[C con Clase] Pregunta Primo

Cachito carrorama en gmail.com
Mie Nov 11 14:38:33 CET 2009


Te paso este código, en C++, que imprime los numeros primos existentes hasta
el numero ingresado. Es recursivo. La recursividad está en la función
"SiPrimo".

Para demostrar que un numero es primo, basta con no encontrar divisores
entre 2 y la parte entera de la raiz del numero dado.

#include <iostream>
#include <stdio.h>
#include <math.h>

using namespace std;

bool SiPrimo (long int, long int);

int main ()
{
    system("cls");

    int n;
    int raizDeN;
    bool primo;

    cout << endl << endl << "Numeros primos entre 2 y un valor ingresado.";
    cout << endl << endl << "ingrese cualquier numero positivo: ";
    cin >> n;
    cout << endl;
    cout << "los numeros primos entre 2 y " << n << " son:";
    for(int i = 2; i <= n; i++)
    {
        // calculo la raiz del numero en cuestión
        raizDeN = (int)sqrt((double)i);
        // pregunto si es primo
        primo = SiPrimo(i, raizDeN);
        if(primo)
        {
            cout << endl;
            cout << i;
        }
    }

    cout << endl;
    system("pause");
    return 0;
}

// N es el número que estamos analizando
// limSup es parte entera de la raiz de este numero
bool SiPrimo (long int N, long int limSup)
{
    // si limSup es distinto de 1
    if(limSup != 1)
    {
        // si la parte entera de la division entre N y limSup es distinta de
cero
        if(N % limSup != 0)
        {
            // por aca puede ser, pruebo el anterior.
            SiPrimo(N, limSup - 1);
        }
        else
        {
            // encontre un divisor, no es primo
            return false;
        }
    }
    else
    {
        // llegue hasta 1 sin encontrar divisores, es primo
        return true;
    }
}


Saludos.

(\__/)
(='.'=)
(")_(")
Este es Conejito.
Copia y pega a Conejito en tu firma para ayudarlo a dominar el mundo.


2009/11/9 Adrian Vargas <adrianvargas10 en hotmail.com>

>  Hola a todos soy un joven estudiante de Ing Mecatronica, apenas empezando,
> pero ya tengo problemas al programar.. bueno mi problema es como definir,
> como escribir en el lenguaje de programcion (algoritmos) un numero primo,
> como lo defino? como le enseño al computador? por que en teoria un numero
> primo es aquel ke es divisible por el mismo y por uno, pero no se como
> escribir eso en c++.. de antemano saludos y gracias a kien pueda ayudarme..
>
> * *
>
>
>
> >>>>>[JETMAN]
>
>
>
>
>
>
> ------------------------------
> Invite your mail contacts to join your friends list with Windows Live
> Spaces. It's easy! Try it!<http://spaces.live.com/spacesapi.aspx?wx_action=create&wx_url=/friends.aspx&mkt=en-us>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20091111/7f7d79b2/attachment.html>


Más información sobre la lista de distribución Cconclase