C ++ Program for å sjekke om et nummer er prime eller ikke

Eksempel for å sjekke om et heltall (angitt av brukeren) er et primtall eller ikke bruker for loop og if … else-setning.

For å forstå dette eksemplet, bør du ha kunnskap om følgende C ++ programmeringsemner:

  • C ++ hvis, hvis … annet og Nestet hvis … annet
  • C ++ for Loop
  • C ++ bryte og fortsette uttalelse

Et positivt heltall som bare er delbart med 1 og i seg selv er kjent som primtall.

For eksempel: 13 er et primtall fordi det bare er delbart med 1 og 13, men 15 er ikke primtall fordi det er delbart med 1, 3, 5 og 15.

Merk: 0 og 1 er ikke primtall.

Eksempel: Sjekk primtall

 #include using namespace std; int main() ( int i, n; bool isPrime = true; cout <> n; // 0 and 1 are not prime numbers if (n == 0 || n == 1) ( isPrime = false; ) else ( for (i = 2; i <= n / 2; ++i) ( if (n % i == 0) ( isPrime = false; break; ) ) ) if (isPrime) cout << n << " is a prime number"; else cout << n << " is not a prime number"; return 0; ) 

Produksjon

 Skriv inn et positivt heltall: 29 29 er et primtall.

Dette programmet tar et positivt heltall fra brukeren og lagrer det i variabelen n.

Legg merke til at den boolske variabelen isPrime initialiseres til truei begynnelsen av programmet.

Siden 0 og 1 ikke er primtall, sjekker vi først om inngangstallet er et av disse tallene eller ikke. Hvis inngangstallet er enten 0 eller 1 , er verdien til isPrime satt til false.

Ellers blir den opprinnelige verdien av isPrime uendret og forsløyfen blir utført, som sjekker om nummeret som er angitt av brukeren er helt delelig med i eller ikke.

 for (i = 2; i <= n / 2; ++i) ( if (n % i == 0) ( isPrime = false; break; ) ) 

Den forløkke går fra i == 2til i <= n / 2og øker verdien av I ved en med hver iterasjon.

Sløyfen slutter ved i == n / 2fordi vi ikke finner noen faktor for n utover tallet n / 2 . Så alle iterasjoner utover n / 2er overflødige.

Hvis tallet som er oppgitt av brukeren er helt delelig med i, er isPrime satt til falseog tallet vil ikke være et primtall.

Men hvis inngangsnummeret ikke er fullt delbart av i hele sløyfen, betyr det at inngangsnummeret bare er delbart med 1 og selve tallet.

Så det gitte tallet er et primtall.

I tilfelle av n == 2, den forsvikter sløyfe for å kjøre og verdien av isPrime gjenstår true.

Interessante artikler...