Números primos enormes

Crie uma função que retorne True se um inteiro for primo ou False se o número for composto. Todos os casos de teste contêm números muito grandes, então a divisão por tentativa não será suficiente.

Exemplos

is_prime(308860934436978480666476812207644303437) ➞ True
# The only factors for this number are 1 and itself.

is_prime(27464981106643782905056206820270083251) ➞ False
# This equals 13803066116705972713 * 1989773929533140027

is_prime(12930519935023769075526485657382658729) ➞ False
# This is 3595903215469483277 squared

Notas

Consulte a aba Resources para ver algumas ótimas explicações sobre como os computadores podem encontrar números primos muito grandes para aplicações de criptografia.