libri-javascript-python

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

Indice argomenti linguaggio C

La funzione fopen

La funzione fclose

Funzione fprintf

Funzione fscanf

Allocazione dinamica della memoria con malloc

Strutture in C

Typedef struct in C

Esercitazione sulle struct in C

Realizzare un menù di scelta in C

Strutture complesse in C

Come sommare gli elementi della cornice esterna

Come sommare due matrici

Matrice trasposta

Prodotto tra matrici

Ricerca elementi in una matrice

Tavola pitagorica in C

Array multidimensionali

Quick sort in C

Selection sort in C

Merge sort in C

Insertion Sort in C