Lingua C: verifica se un numero intero è un numero primo

Un programma in linguaggio C può essere usato per verificare se un numero intero è un numero primo . È necessaria una certa conoscenza dei concetti e dei linguaggi di programmazione come C per scrivere un codice di programma in C. Concetti di base come il ciclo, compresi i cicli, mentre i loop, se altri cicli, funzioni, ecc. Sono necessari per scrivere programmi. Un programma per verificare se un numero intero è un numero primo in C può essere scritto usando cicli nidificati . I loop nidificati contengono uno per ciclo all'interno di un altro. Una certa conoscenza delle funzioni C come scanf e printf si rivelerà utile anche durante la programmazione in C.

[Lingua C] Controllare se un numero intero è un numero primo

  • Definizione di un numero primo
    • Algoritmo 1: saranno verificati i divisori tra 2 e N-1
    • Algoritmo 2: i divisori pari non verranno testati, la ricerca è limitata ai divisori dispari
    • Algoritmo 3: Verranno testati tutti i divisori dispari fino alla radice quadrata di N
    • Algoritmo 4: ferma il programma quando viene trovato un divisore

Definizione di un numero primo

Un numero primo è un numero intero, che è diviso solo per 1 e per se stesso.

Algoritmo 1: saranno verificati i divisori tra 2 e N-1

/ **************************

  • algoritmo prime_number1.c * / / *: verifica tutti i divisori * / #include int main (void) {int i, nb, count, test; test = count = 0; printf ("enter integer:"); if (scanf ("% d", & nb)! = 1) restituisce -1; for (i = 2; i <nb; i ++, count ++) if (nb% i == 0) test = 1; if (! test) printf ("% d numero primo, numero di iterazioni =% dn", nb, conteggio); else printf ("% d non è un numero primo, numero di iterazioni =% dn", nb, conteggio); ritorno 0; }

Algoritmo 2: i divisori pari non verranno testati, la ricerca è limitata ai divisori dispari

/ **************************

  • algoritmo prime_number2.c * / / *: esclude i numeri pari e * verifica tutti i divisori * / #include int main (void) {int i, nb, count, test; test = count = 0; printf ("enter integer:"); if (scanf ("% d", & nb)! = 1) restituisce -1; if (nb% 2 == 0) test = 1; else {for (i = 3; i <nb; i + = 2, count ++) if (nb% i == 0) test = 1; } if (! test) printf ("% d numero primo, numero di iterazioni =% dn", nb, conteggio); else printf ("% d non è un numero primo, numero di iterazioni =% dn", nb, conteggio); ritorno 0; }

Algoritmo 3: Verranno testati tutti i divisori dispari fino alla radice quadrata di N

/ **************************

  • primo_number3.c * / / * algoritmo: esclude tutti i numeri pari e * verifica tutti i divisori fino alla radice quadrata * / #include #include int main (void) {int i, nb, count, test, limit; test = count = 0; printf ("enter integer:"); if (scanf ("% d", & nb)! = 1) restituisce -1; limite = sqrt (nb) + 1; if (nb% 2 == 0) test = 1; else {for (i = 3; i <limite; i + = 2, count ++) if (nb% i == 0) test = 1; } if (! test) printf ("% d numero primo, numero di iterazioni =% dn", nb, conteggio); else printf ("% d non un numero primo, numero di iterazioni =% dn", nb, conteggio); ritorno 0; }

Algoritmo 4: ferma il programma quando viene trovato un divisore

/ **************************

  • primo_number4.c * / / * algoritmo: esclude tutti i numeri pari e * prova tutti i divisori fino al root di radice * exit loop quando viene trovato il primo divisore * / #include #include int main (void) {int i, nb, count, prova, limite; test = count = 0; printf ("Enter integer:"); if (scanf ("% d", & nb)! = 1) restituisce -1; limite = sqrt (nb) + 1; if (nb% 2 == 0) test = 1; else {for (i = 3; i <limit &&! test; i + = 2, count ++) if (nb% i == 0) test = 1; } if (! test) printf ("% d numero primo, numero di iterazioni =% dn", nb, conteggio); else printf ("% d non numero primo, numero di iterazioni =% dn", nb, conteggio); ritorno 0; }
Articolo Precedente Articolo Successivo

I Migliori Consigli