Avatar ·

Tarefa "Menor divisor primo"

📁 python, erro, botas

Acabei de começar a estudar Python na plataforma Sirius. Consegui resolver todas as outras tarefas do tópico «while», exceto uma tarefa que não me permite passar para os próximos tópicos. A tarefa «Menor divisor primo de um número».

Condição: Dado um número inteiro, não menor que 2. Imprima seu menor divisor primo. Não é permitido usar bibliotecas adicionais (math, etc.)!

Dados de entrada: É inserido um número inteiro positivo N <= 2*10 elevado à 9ª potência.

Dados de saída: Imprima a resposta para a tarefa.

Tentei resolver escrevendo um código com while, mas minha resposta não é aceita, devido ao tempo de execução muito longo do programa. Recomenda-se organizar um loop que percorra os divisores até a raiz do número N: while i*i <= N:, mas não consigo entender como fazer isso.

Meu código Python (dá erro «O programa executou por muito tempo e foi interrompido» ou «O programa apresenta erro durante o processo de»)