Programma C per visualizzare i numeri primi tra due intervalli

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 whileciclo viene ripetuto ( high-low-1) volte.

In ogni iterazione, lowviene verificato se è un numero primo o meno, e il valore di lowviene incrementato di 1finché 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

Articoli interessanti...