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 true
i 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 for
slø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 for
løkke går fra i == 2
til i <= n / 2
og øker verdien av I ved en med hver iterasjon.
Sløyfen slutter ved i == n / 2
fordi vi ikke finner noen faktor for n utover tallet n / 2
. Så alle iterasjoner utover n / 2
er overflødige.
Hvis tallet som er oppgitt av brukeren er helt delelig med i, er isPrime satt til false
og 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 for
svikter sløyfe for å kjøre og verdien av isPrime gjenstår true
.