Eksempel for at kontrollere, om et heltal (indtastet af brugeren) er et primtal eller ikke bruger til loop, og hvis … ellers udsagn.
For at forstå dette eksempel skal du have kendskab til følgende C ++ programmeringsemner:
- C ++ hvis, hvis … ellers og Nestet hvis … ellers
- C ++ til Loop
- C ++ bryde og fortsætte erklæring
Et positivt heltal, der kun kan deles med 1 og i sig selv er kendt som primtal.
For eksempel: 13 er et primtal, fordi det kun er deleligt med 1 og 13, men 15 er ikke primtal, fordi det er deleligt med 1, 3, 5 og 15.
Bemærk: 0 og 1 er ikke primtal.
Eksempel: Kontroller primtal
#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; )
Produktion
Indtast et positivt heltal: 29 29 er et primtal.
Dette program tager et positivt heltal fra brugeren og gemmer det i variablen n.
Bemærk, at den boolske variabel isPrime initialiseres til true
i begyndelsen af programmet.
Da 0 og 1 ikke er primtal, skal vi først kontrollere, om inputnummeret er et af disse tal eller ej. Hvis inputnummeret enten er 0 eller 1 , er værdien af isPrime indstillet til false
.
Ellers efterlades den oprindelige værdi af isPrime uændret, og for
sløjfen udføres, som kontrollerer, om det antal, der er indtastet af brugeren, kan deles helt med i eller ej.
for (i = 2; i <= n / 2; ++i) ( if (n % i == 0) ( isPrime = false; break; ) )
Den for
løkke løber fra i == 2
til i <= n / 2
og øger værdien af i med 1 med hver iteration.
Sløjfen slutter ved, i == n / 2
fordi vi ikke kan finde nogen faktor for n ud over tallet n / 2
. Så enhver iteration udover n / 2
er overflødig.
Hvis det antal, der er indtastet af brugeren, er helt deleligt med i, er isPrime indstillet til, false
og tallet vil ikke være et primtal.
Men hvis inputnummeret ikke er fuldstændigt deleligt af i hele sløjfen, betyder det, at inputnummeret kun kan deles med 1 og selve tallet.
Så det givne tal er et primtal.
I tilfælde af n == 2
, at for
løkken undlader at køre og værdien af isPrime forbliver true
.