Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: iamedgarrios en 2 Agosto 2017, 19:06 pm



Título: Números primos/ pares e impares.
Publicado por: iamedgarrios en 2 Agosto 2017, 19:06 pm
Buen día !.
Quiero realizar un programa en C en el que se pida ingresar números hasta que se ingrese un "0" o un número negativo, cuando esto ocurra el programa debe mostrar:
a) Cuantos números se ingresarón
b)Cuantos números son primos
c) Cuántos números son pares
d) Cuántos números son impares.

He realizado practicamente cada inciso por separado, pero no se como podría poner todo en un mismo programa.
Código:
#include <stdio.h>
int main()
{
    int n, i, flag = 0;

    printf("Teclea un numero entero positivo: ");
    scanf("%d",&n);

    for(i=2; i<=n/2; ++i)
    {
        if(n%i==0)
        {
            flag=1;
            break;
        }
    }

    if (flag==0)
        printf("%d SI es un numero primo.",n);
    else
        printf("%d NO es un numero primo :(",n);
        getch();

    return 0;
}

Ojalá pudieran ayudarme ! Gracias !


Título: Re: Números primos/ pares e impares.
Publicado por: engel lex en 2 Agosto 2017, 19:13 pm
creas una funcion para cada... bueno para cada funcion XD y luego contabilizas en relación a eso

por otro lado los primos no son hasta la mitad, y no son pares (por excepción del 2)

Código:
for(i=2; i<=n/2; ++i)

son hasta la raiz y son solo impares

Código:
if(n==2 || n==3) es_primo=1;
for(i=5; i*i<n; i+=2)


Título: Re: Números primos/ pares e impares.
Publicado por: iamedgarrios en 2 Agosto 2017, 20:11 pm
Parece que ya lo logré, gracias !.

Código:
#include <stdio.h>

int esPrimo(int n)
{
    int i, cant = 0;
    for(i = 1; i <= n; i++)
    {
        if(n % i == 0)
            cant++;
    }
    if(cant == 2)
        return 1;
    else
        return 0;
}

int main(void)
{
    int n;
    int cantNum = 0, cantPrimos = 0, cantPar = 0, cantImpar = 0;

    printf("Teclea un numero entero positivo: ");
    scanf("%d",&n);
    while (n > 0)
    {
        cantNum++;
        if(n % 2 == 0)
            cantPar++;
        else
            cantImpar++;
        if (esPrimo(n))
            cantPrimos++;
        printf("Teclea un numero entero positivo: ");
        scanf("%d",&n);
    }
    printf("Cantidad de numeros ingresados: %d\n", cantNum);
    printf("Cantidad de numeros primos: %d\n", cantPrimos);
    printf("Cantidad de numeros pares: %d\n", cantPar);
    printf("Cantidad de numeros impares: %d\n", cantImpar);

    return 0;
}