Numeri Primi
Questo programma in C ti dirà se il numero inserito dall’utente è, o non è, un numero primo!
v 1.0
#include <stdio.h> int main(void) { int n, i; int p = 1; // 1 vero - 0 falso do { printf("Inserisci un numero. Ti dico se e' primo. "); scanf("%i", &n); } while (n < 1); for (i = 2; i < n && p == 1; i++) { // && p == 1 serve solo per velocizzare il programma in caso di numeri estremamente grandi if (n % i == 0) { p = 0; // ora è falso } } if (p == 1) printf("Il numero inserito e' primo!"); else printf("Il numero inserito non e' primo..."); return 0; }
v 2.0 (in array – vettori)
#include <stdio.h> #define DIM 40 int main(void) { int primes[DIM]; int pos; int nPrimes; int isPrime; int candidato; // inizializza l'array con i numeri primi primes[0] = 2; primes[1] = 3; nPrimes = 2; for (candidato = 5; nPrimes < DIM; candidato += 2) { isPrime = 1; // vero // proviamo a dividere candidato per i numeri primi più piccoli // della radice quadrata del candidato stesso for (pos = 0; isPrime && primes[pos] * primes[pos] <= candidato; pos++) if (candidato % primes[pos] == 0) isPrime = 0; // falso // se candidato era realmente primo, lo salvo nell'array if (isPrime) primes[nPrimes++] = candidato; } // stampa l'array sul video for (pos = 0; pos < DIM; pos++) printf("%i ", primes[pos]); printf("\n"); return 0; }
Per ogni dubbio o problema, non esitare a commentare!!
No trackbacks yet.