C ++ - program för att kontrollera om ett nummer är primt eller inte

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 truei 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 forslingan 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 forslingan löper från i == 2till i <= n / 2och ökar värdet på i genom en med varje iteration.

Slingan slutar vid i == n / 2eftersom 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å falseoch 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 == 2går inte forslingan att köra och värdet av isPrime kvarstår true.

Intressanta artiklar...