Definizione di numero primo con la logica

numeri primi da 1 a 1000
Home

In questa lezione di approfondimento vedremo come esprimere la definizione di numero primo con la logica. Conviene anzitutto ricordare che un numero primo è un numero naturale maggiore di ​\( 1 \)​ che è divisibile soltanto per sé stesso e per ​\( 1 \)​.

Nel definire il concetto di numero primo con la logica, scriveremo una particolare proposizione aperta nella variabile ​\( x \)​. Tale proposizione dovrà essere costruita in modo tale da poter essere vera soltanto attribuendo alla ​\( x \)​ numeri primi.

 

Perché 1 non è un numero primo?

Per il teorema fondamentale dell’aritmetica, per ogni numero esiste un’unica fattorizzazione in numeri primi. Ad esempio, il numero ​\( 56 \)​ potrà essere fattorizzato come ​\( 56=2^3 \cdot 7 \)​. Potremo scambiare l’ordine dei fattori, ma il numero ​\( 56 \)​ sarà esprimibile unicamente come prodotto dei soli numeri primi ​\( 2 \)​ e ​\( 7 \)​, elevati alle rispettive potenze. Per cui la fattorizzazione, non contando l’ordine dei fattori, è unica.

Se ​\( 1 \)​ fosse un numero primo, potremmo avere per ​\( 56 \)​ infinite fattorizzazioni, tra le quali ad esempio:

\[ 56 = 2^3 \cdot 7 \cdot 1; \qquad 56 = 2^3 \cdot 7 \cdot 1 \cdot 1; \qquad 56=2^3\cdot 7 \cdot 1 \cdot 1 \cdot 1 \cdot 1 \cdot … \]

Per questo motivo, si è convenuto di considerare ​\( 1 \)​ come un numero non primo, anche se è comunque divisibile soltanto per sé stesso e per… ​\( 1 \)​.

Quindi, per la nostra proposizione, dobbiamo tenere conto che ​\( 1 \)​ andrà escluso.

 

Definizione alternativa di numero primo

Un numero primo è un numero naturale maggiore di ​\( 1 \)​ che non può essere esprimibile come prodotto di due numeri entrambi minori del numero primo stesso.

Questa definizione, del tutto equivalente a quella data inizialmente, si presta meglio per scrivere la nostra proposizione.

Affinché un numero naturale possa dirsi primo, abbiamo quindi due condizioni che devono essere soddisfatte contemporaneamente:

  • il numero deve essere maggiore di ​\( 1 \)​;
  • il numero non deve essere esprimibile come ​\( x=a \cdot b \)​, con ​\( a < x \quad \text{et} \quad b < x \)​.

Capiamo dunque che dobbiamo scrivere due proposizioni, ciascuna per condizione, e collegarle tra loro mediante la congiunzione logica.

Dunque, scritte le due proposizioni ​\( a(x) \)​ e ​\( b(x) \)​ , la proposizione che individua i numeri primi sarà:

\[ p(x)=a(x) \wedge b(x) \]

Per la prima condizione possiamo scrivere la proposizione:

\[ a(x): “x > 1” \]

Per la seconda proposizione, è necessaria qualche considerazione in più 😉

Partiamo dalla definizione di numero composto: un numero naturale maggiore di ​\( 1 \)​ è composto se non è primo. Dunque, un numero composto dovrà essere esprimibile come ​\( x=a \cdot b \)​ con ​\( a, b < x \)​.

Ora, la seguente proposizione viene verificata attribuendo alla ​\( x \)​ un qualsiasi numero composto:

\[ \forall a, \: \forall b \: \in \mathbb{N}, \quad \exists (a,b) \quad \text{t.c} \quad x=a \cdot b \quad \wedge \quad (a < x) \quad \wedge \quad (b < x) \]

Ovvero, fra tutte le coppie di numeri naturali ​\( a, b \)​ affinché un numero sia composto deve esistere una coppia ​\( (a,b) \)​ di numeri entrambi minori di ​\( x \) tali che la relazione ​\( x=a \cdot b \)​ è verificata. L’esistenza di tale coppia viene indicata con il quantificatore esistenziale ​\( \exists \)​.

Siamo praticamente quasi arrivati alla proposizione ​\( b(x) \)​. Ci basta soltanto dire che un numero sarà primo solamente se una tale coppia ​\( (a,b) \)non esiste. Per fare ciò, dobbiamo negare il quantificatore esistenziale ​\( \exists \)​, utilizzando il quantificatore ​\( \nexists \)​:

\[ b(x): “\forall a, \: \forall b \: \in \mathbb{N}, \quad \nexists (a,b) \quad \text{t.c} \quad (x=a \cdot b) \quad \wedge \quad (a < x) \quad \wedge \quad (b < x)” \]

Come si può notare, abbiamo utilizzato la congiunzione logica per esprimere il fatto che le tre condizioni appena scritte relative agli elementi ​\( a,b \)​ devono essere verificate contemporaneamente.

Osserviamo che la proposizione ​\( b(x) \)​ è una proposizione aperta nella quale l’argomento variabile è ​\( x \)​. Non scriviamo ​\( b(x, a, b) \)​ poiché nell’enunciato della proposizione viene esplicitamente detto che agli elementi ​\( a,b \)​ vengono attribuiti tutti i numeri naturali, tramite i quantificatori universali ​\( \forall \)​.

In conclusione, possiamo dire che un numero naturale ​\( x \)​ è primo se risulta vera la seguente proposizione:​

\[ a(x) \wedge b(x) \]

ovvero se risulta vera:

\[ p(x): “x > 1 \:\wedge \: (\forall a, \: \forall b \: \in \mathbb{N}, \quad \nexists (a,b) \: \text{t.c} \:\: (x=a \cdot b)\:\wedge \: (a < x) \:\wedge \: (b < x)) ” \]

Osserviamo che questa proposizione individua i numeri primi senza utilizzare criteri di divisibilità 😉

Precisiamo per completezza che questa proposizione, che fornisce una definizione di numero primo con la logica, è definita nell’insieme dei numeri naturali (​\( \forall x \in \mathbb{N} \)​​, ovviamente).

 

Abbiamo dunque visto una possibile definizione di numero primo con la logica. Tale definizione può essere utilizzata in un programma informatico, in modo da poter scrivere rapidamente i numeri primi presenti nei primi ​\( n \)​ numeri naturali. Ad esempio, il seguente elenco è stato creato mediante un programma che utilizza la proposizione costruita in questa lezione. Ciao a tutti! 🙂

 

numeri primi da 1 a 1000