Hledání dělitelů ( zkušební dělení ) je algoritmus pro faktoring nebo testování jednoduchosti čísla vyčerpávajícím výčtem všech možných potenciálních dělitelů .
Výčet dělitelů obvykle spočívá ve výčtu všech celočíselných (jako možnost: prvočíslo ) čísel od 2 do druhé odmocniny faktorizovatelného čísla n a ve výpočtu zbytku dělení n každým z těchto čísel. Jestliže zbytek dělení nějakým číslem i je 0, pak i je dělitel n . V tomto případě je buď n deklarováno jako složené a algoritmus končí (pokud je n testováno jako prvočíslo ) , nebo je n redukováno o i a postup se opakuje (pokud je n faktorizováno ). Po dosažení druhé odmocniny n a nemožnosti redukovat n na žádné z menších čísel je n prohlášeno za prvočíslo [1] .
Pro urychlení výčtu se často nekontrolují ani dělitelé, kromě čísla 2, stejně jako dělitelé, kteří jsou násobky tří, kromě čísla 3. V tomto případě je test urychlen třikrát, protože z každého šest po sobě jdoucích potenciálních dělitelů je třeba zkontrolovat pouze dva, a to ve tvaru 6 k ±1, kde k je přirozené číslo .
Nejhorší případ je, když musíte iterovat od 2 do kořene n . Složitost tohoto algoritmu
Pro ilustraci vyjmenujme dělitele čísla n = 29. i jsou možné dělitele n .
i | n % i |
---|---|
2 | jeden |
3 | 2 |
čtyři | jeden |
5 | čtyři |
Protože žádný ze zbytků 29 není 0, je 29 prohlášeno za prvočíslo.
Nechť nyní n = 7399, pak [2]
i | n % i |
---|---|
2 | jeden |
3 | jeden |
čtyři | 3 |
5 | čtyři |
6 | jeden |
7 | 0 |
Protože zbytek dělení 7399 7 je 0, pak 7399 není prvočíslo.
V praktických problémech se tento algoritmus používá jen zřídka kvůli své vysoké výpočetní náročnosti , jeho použití je však oprávněné, pokud jsou kontrolovaná čísla relativně malá, protože tento algoritmus je poměrně snadno implementovatelný [1] .