Exempel för att kontrollera om ett heltal (inmatat av användaren) är ett primtal eller inte använder för loop och om … annars uttalande.
För att förstå detta exempel bör du ha kunskap om följande C ++ programmeringsämnen:
- C ++ if, if… else och Nested if … else
- C ++ för Loop
- C ++ bryta och fortsätt uttalande
Ett positivt heltal som endast är delbart med 1 och i sig kallas primtal.
Till exempel: 13 är ett primtal eftersom det bara är delbart med 1 och 13 men 15 är inte primtal eftersom det är delbart med 1, 3, 5 och 15.
Obs! 0 och 1 är inte primtal.
Exempel: Kontrollera 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
Ange ett positivt heltal: 29 29 är ett primtal.
Detta program tar ett positivt heltal från användaren och lagrar det i variabeln n.
Observera att den booleska variabeln isPrime initialiseras till true
i början av programmet.
Eftersom 0 och 1 inte är primtal talar vi först om ingångsnumret är ett av dessa siffror eller inte. Om ingångsnumret är antingen 0 eller 1 , är värdet på isPrime inställt på false
.
Annars lämnas initialvärdet för isPrime oförändrat och for
slingan exekveras, vilket kontrollerar om antalet som användaren har angett är helt delbart med i eller inte.
for (i = 2; i <= n / 2; ++i) ( if (n % i == 0) ( isPrime = false; break; ) )
Den for
slingan löper från i == 2
till i <= n / 2
och ökar värdet på i genom en med varje iteration.
Slingan slutar vid i == n / 2
eftersom vi inte kan hitta någon faktor för n som ligger utanför talet n / 2
. Så alla iterationer bortom n / 2
är överflödiga.
Om numret som användaren anger är helt delbart med i, är isPrime inställt på false
och numret kommer inte att vara ett primtal.
Men om ingångsnumret inte är helt delbart med i hela slingan, betyder det att ingångsnumret bara är delbart med 1 och numret i sig.
Så det angivna numret är ett primtal.
I fallet med n == 2
går inte for
slingan att köra och värdet av isPrime kvarstår true
.