In questo esempio imparerai a stampare tutti i numeri primi tra due numeri inseriti dall'utente.
Per comprendere questo esempio, è necessario conoscere i seguenti argomenti di programmazione in C:
- C if … else Istruzione
- C per Loop
- C interrompi e continua
Visualizza i numeri primi tra due intervalli
#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; )
Produzione
Immettere due numeri (intervalli): 20 50 I numeri primi compresi tra 20 e 50 sono: 23 29 31 37 41 43 47
In questo programma, il while
ciclo viene ripetuto ( high-low-1
) volte.
In ogni iterazione, low
viene verificato se è un numero primo o meno, e il valore di low
viene incrementato di 1
finché low
è uguale a high
.
Visita questa pagina per saperne di più su come verificare se un numero è primo o meno.
Se l'utente inserisce prima il numero più grande, il programma sopra non funziona come previsto. Puoi risolvere questo problema scambiando i numeri.
Visualizza i numeri primi quando viene immesso per primo un numero più 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; )
Visita questa pagina per scoprire come visualizzare tutti i numeri primi tra i due intervalli creando una funzione definita dall'utente