Neste exemplo, você aprenderá a imprimir todos os números primos entre dois números inseridos pelo usuário.
Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação C:
- Declaração C if … else
- C para Loop
- C quebrar e continuar
Exibir números primos entre dois 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; )
Resultado
Digite dois números (intervalos): 20 50 Os números primos entre 20 e 50 são: 23 29 31 37 41 43 47
Neste programa, o while
loop é iterado ( high-low-1
) vezes.
Em cada iteração, se low
é um número primo ou não é verificado, e o valor de low
é incrementado em 1
até que low
seja igual a high
.
Visite esta página para saber mais sobre como verificar se um número é primo ou não.
Se o usuário inserir o número maior primeiro, o programa acima não funcionará conforme o esperado. Você pode resolver esse problema trocando os números.
Exibir números primos quando o número maior for inserido primeiro
#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 saber como você pode exibir todos os números primos entre os dois intervalos, criando uma função definida pelo usuário