
Realizziamo un programma in C che controlli se un numero è primo.
Definizione di numero primo
Partiamo dunque dalla definizione di numero primo:
Un numero è primo quando ha come divisore uno e se stesso.
Quindi è primo ciascun numero naturale maggiore di 1 che sia divisibile solamente per 1 e per sé stesso.
La successione dei numeri primi comincia con 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, …
Algoritmo che realizza se un numero è primo in C
Per realizzare l’algoritmo utilizziamo le strutture cicliche. Dunque, onde evitare di dividere un numero tante volte, si è scelto di interrompere il ciclo non appena il contatore dei divisori raggiunge 2.
Ecco un esempio:
#include <stdio.h> //inserito un numero controllare se è primo main() { int numero, div=1; int conta=0; printf("inserisci il numero: "); scanf("%d", &numero); //ho impostato conta<3 per far in modo che esca subito appena trova due divisori while(conta<3 && div<=numero/2) { if(numero%div==0) //se trova divisori incrementa il contatore dei divisori conta=conta+1; div=div+1; } if (conta==1) printf("il numero e' primo\n "); else printf("il numero non e' primo\n "); }
Alcuni link utili
Allocazione dinamica della memoria con malloc
Esercitazione sulle struct in C
Realizzare un menù di scelta in C
Come sommare gli elementi della cornice esterna
Ricerca elementi in una matrice