Números primos/ pares e impares.

Iniciado por iamedgarrios, 2 Agosto 2017, 19:06 PM

0 Miembros y 1 Visitante están viendo este tema.

iamedgarrios

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.

#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 !

engel lex

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)

for(i=2; i<=n/2; ++i)

son hasta la raiz y son solo impares

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

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.

iamedgarrios

Parece que ya lo logré, gracias !.

#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;
}