V programování, zejména při práci s čísly, je často nutné zkontrolovat, zda je číslo prvočíslo nebo složené.
Prvočíslo se nazývá přirozené číslo, větší jednotka, která se beze zbytku dělí pouze na jednotku a sama na sebe. Pokud je číslo dělitelné jinými čísly, je složené.
Existuje několik přístupů k ověření čísla pro jednoduchost. V tomto článku se podíváme na jeden z nejjednodušších a nejúčinnějších způsobů implementace tohoto úkolu v programovacím jazyce Python.
Jak zjistit jednoduchost čísla v Pythonu
1. Metoda přerušení
Jedním z jednoduchých a intuitivních způsobů, jak otestovat jednoduchost čísla, je zkontrolovat, zda je dělitelné libovolným číslem kromě 1 a sebe sama. K tomu lze použít cyklus, který překročí všechna čísla od 2 do n-1 (kde n je číslo, které je třeba zkontrolovat).
def is_prime(n):if n < 2:return Falsefor i in range(2, n):if n % i == 0:return Falsereturn True
Pokud funkce vrátí True, znamená to, že číslo je jednoduché. Jinak je složená.
2. Metoda"Eratosthen"
Optimálnějším způsobem, jak ověřit jednoduchost čísla, je použití "eratosférické mřížky". Algoritmus je následující:
- Vytvořte seznam čísel od 2 do n a inicializujte je hodnotou True.
- Přehrát všechna čísla na seznamu.
- Pokud je číslo prvočíslo, nastavte všechna jeho násobky v seznamu na hodnotu False, protože jsou složená.
- Pokud číslo zůstane po překročení, považujeme ho za jednoduché.
def sieve_of_eratosthenes(n):primes = [True] * (n+1)primes[0] = primes[1] = Falsefor i in range(2, int(n**0.5) + 1):if primes[i]:for j in range(i*i, n+1, i):primes[j] = Falsereturn primes
Funkce vrací seznam prvočísel od 2 do n.Chcete-li zkontrolovat, zda je číslo prvočíslo, musíte zkontrolovat jeho index v seznamu. Pokud se hodnota rovná pravdě,číslo je prvočíslo, jinak složené.
Co je prvočíslo:
Prvočísla jsou základními stavebními kameny všech ostatních čísel. Jsou to bezkonkurenční matematické "cihly", ze kterých lze sestavit libovolné číslo. Proto jsou prvočísla důležitými studijními objekty pro teorii čísel.
Prvních pár prvočísel je 2, 3, 5, 7, 11, 13, . a tak dále. Pokračují nekonečně a nelze je vyjádřit jako součin jiných čísel.
Znalost prvočísel je nejen důležitá pro matematický svět, ale má také praktické využití v oblastech šifrování a počítačové bezpečnosti.
Algoritmus ověření jednoduchosti:
Prvočíslo je číslo, které se beze zbytku dělí pouze na sebe a na jednotku.
K ověření jednoduchosti čísla v Pythonu lze použít následující algoritmus:
| Krok | Popis |
| 1 | Zkontrolujte, zda je číslo menší nebo rovno 1. Pokud ano, číslo není jednoduché. |
| 2 | Zkontrolujte, zda je číslo beze zbytku vyděleno nějakým číslem, počínaje 2 a konče kořenem z čísla. Pokud je dělitelné, číslo není jednoduché. |
| 3 | Pokud se číslo nerozdělí beze zbytku na jedno číslo od 2 do kořene čísla, pak je číslo prvočíslo. |
K implementaci tohoto algoritmu v Pythonu lze použít smyčku a operaci modulu %. V cyklu budou zkontrolována všechna čísla od 2 do zaokrouhlené hodnoty kořene z daného čísla.
Příklad kódu v Pythonu:
import mathdef is_prime(num):if num
Как проверить число на простоту в Python:
Вот пример кода, демонстрирующий проверку числа на простоту:
| Алгоритм | Описание |
|---|---|
| Проверка делителей | Проверяем все числа от 2 до корня из числа. Если найден делитель, то число не является простым. |
В питоне выглядит это так:
import mathdef is_prime(number):if number < 2:return Falsefor i in range(2, int(math.sqrt(number)) + 1):if number % i == 0:return Falsereturn Truenumber = 17if is_prime(number):print(f"- простое число")else:print(f" - составное число")
V důsledku provedení tohoto kódu bude na obrazovku zobrazeno "17-prvočíslo".
Tímto způsobem lze pomocí uvedeného kódu ověřit libovolné číslo pro jednoduchost v Pythonu.
Příklady softwarového kódu:
- Kontrola čísla pro jednoduchost pomocí cyklu:
def is_prime(n):if n - простое число")else:print(f" - составное число")
def is_prime(n, i=2):if n - простое число")else:print(f" - составное число")
def sieve_of_eratosthenes(n):sieve = [True] * (n + 1)sieve[0] = sieve[1] = Falsep = 2while p * p - простое число")else:print(f" - составное число")