En este ejemplo, aprenderá a imprimir todos los números primos entre dos números ingresados por el usuario.
Para comprender este ejemplo, debe tener el conocimiento de los siguientes temas de programación en C:
- C if … else Statement
- C para bucle
- C romper y continuar
Mostrar números primos entre dos intervalos
#include int main() ( int low, high, i, flag; printf("Enter two numbers(intervals): "); scanf("%d %d", &low, &high); printf("Prime numbers between %d and %d are: ", low, high); // iteration until low is not equal to high while (low < high) ( flag = 0; // ignore numbers less than 2 if (low <= 1) ( ++low; continue; ) // if low is a non-prime number, flag will be 1 for (i = 2; i <= low / 2; ++i) ( if (low % i == 0) ( flag = 1; break; ) ) if (flag == 0) printf("%d ", low); // to check prime for the next number // increase low by 1 ++low; ) return 0; )
Salida
Ingrese dos números (intervalos): 20 50 Los números primos entre 20 y 50 son: 23 29 31 37 41 43 47
En este programa, el while
bucle se itera ( high-low-1
) veces.
En cada iteración, low
se comprueba si es un número primo o no, y el valor de low
se incrementa en 1
hasta que low
sea igual a high
.
Visite esta página para obtener más información sobre cómo verificar si un número es primo o no.
Si el usuario ingresa primero el número mayor, el programa anterior no funciona como se esperaba. Puede resolver este problema cambiando los números.
Mostrar números primos cuando se ingresa primero un número más grande
#include int main() ( int low, high, i, flag, temp; printf("Enter two numbers(intervals): "); scanf("%d %d", &low, &high); // swap numbers if low is greather than high if (low> high) ( temp = low; low = high; high = temp; ) printf("Prime numbers between %d and %d are: ", low, high); while (low < high) ( flag = 0; // ignore numbers less than 2 if (low <= 1) ( ++low; continue; ) for (i = 2; i <= low / 2; ++i) ( if (low % i == 0) ( flag = 1; break; ) ) if (flag == 0) printf("%d ", low); ++low; ) return 0; )
Visite esta página para aprender cómo puede mostrar todos los números primos entre los dos intervalos creando una función definida por el usuario