mathlover24
Genius
1 min. di lettura
Vota 5 / 5

Concetti Chiave

  • Un numero è primo se ha esattamente due divisori: 1 e se stesso. Ad esempio, 17 è primo, mentre 25 no perché è divisibile anche per 5.
  • Il numero 1 non è considerato primo poiché ha solo un divisore, se stesso, e non due.
  • Il codice C++ fornito utilizza un ciclo per contare i divisori di un numero N, incrementando un contatore ogni volta che N è divisibile per un numero K.
  • La verifica di primalità si basa sul fatto che un numero N è primo se il contatore dei divisori è esattamente 2, altrimenti è composto.
  • Il programma termina con l'output che indica se il numero è primo o composto, seguito da una pausa di sistema per visualizzare il risultato.

C++ - Determinare se un numero è primo

Sappiamo benissimo che un numero n è primo se e solo se gli unici numeri interi che dividono n sono n e 1.
Esempio:
17 è primo (non è divisibile per nessuno dei numeri compresi tra 2 e 16);
25 è composto (divisibile per 1, 5, 25).
Ma 1 è primo? NO!
Precisamente, possiamo dire che i numeri primi hanno solamente 2 divisori (1 e sé stessi), mentre 1 ce ne ha solamente uno!
Il ragionamento da far seguire all'esecutore è di contare i divisori, per tentativi.
Ecco il codice, spiegato passo passo!
#include
#include

using namespace std;

int main()
{
int N; //introduciamo le variabili
int contaPassi;
int Resto;
int K;
K = 1; //Facciamo partire K da 1 (per verificare la divisibilità)
contaPassi = 0; //e il numero dei divisori naturalmente da 0
cout cin >> N; //si inserisce N
while(K Resto = N % K; //definisco Resto come N modulo K
if(Resto == 0){ //Se il resto è 0, allora N è divisibile per K
contaPassi = contaPassi + 1; //aggiungo uno al numero dei divisori
}
K = K+1; //K viene aumentato di 1
}
if(contaPassi == 2){ //Se i divisori sono 2
cout } else { //diversamente...
cout }
system ("pause"); //Fine programma
}

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community