V tomto příkladu se naučíte zkontrolovat, zda celé číslo zadané uživatelem je prvočíslo nebo ne.
Abychom pochopili tento příklad, měli byste mít znalosti o následujících programovacích tématech jazyka C:
- C pokud … jiné prohlášení
- C pro smyčku
- C zlom a pokračuj
Prvočíslo je kladné celé číslo, které je dělitelné pouze 1
sebou samým. Například: 2, 3, 5, 7, 11, 13, 17
Program ke kontrole prvočísla
#include int main() ( int n, i, flag = 0; printf("Enter a positive integer: "); scanf("%d", &n); for (i = 2; i <= n / 2; ++i) ( // condition for non-prime if (n % i == 0) ( flag = 1; break; ) ) if (n == 1) ( printf("1 is neither prime nor composite."); ) else ( if (flag == 0) printf("%d is a prime number.", n); else printf("%d is not a prime number.", n); ) return 0; )
Výstup
Zadejte kladné celé číslo: 29 29 je prvočíslo.
V programu je smyčka for iterována od i = 2
do i < n/2
.
V každé iteraci se kontroluje, zda n je dokonale dělitelné i, pomocí:
if (n % i == 0) ( )
Pokud n je dokonale dělitelné i, n není prvočíslo. V tomto případě je příznak nastaven na 1 a smyčka je ukončena pomocí break
příkazu.
Pokud je po smyčce n prvočíslo, bude příznak stále 0. Pokud však n není prvočíslo, bude příznak 1.
Na této stránce se dozvíte, jak můžete vytisknout všechna prvočísla mezi dvěma intervaly.