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 !
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)
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;
}