Esses dias realizando alguns exerc?cios matem?ticos e algoritmos em python me deparei com um que me solicitou:
Implementar uma fun??o que retorne verdadeiro se o n?mero for primo (falso caso contr?rio). Testar de 1 a 100.
Bom primeira coisa que fiz foi pensar em dividir esta atividade em 2 fun??es, uma para realizar a intera??o dos n?meros e dentro chamar outra fun??o para validar um respectivo n?mero solicitado, sendo o retorno dessa fun??o Verdadeiro (? um n?mero primo) ou Falso (n?o ? um n?mero primo)
Sabendo que os n?meros primos possuem a regra que os definem:
Um n?mero primo ? aquele que ? divis?vel por apenas 2 n?meros, 1 e por ele mesmo. Sabe-se tamb?m que o n?mero 1, n?o ? primo pois possui apenas um ?nico divisor. O ?nico n?mero par que ? primo ? o n?mero 2.
Tendo em mente o conhecimento geral sobre os n?meros primos, implementei 2 vers?es de valida??o de n?mero primo, a primeira vers?o uma varredura, dentro do universo dos n?meros ?mpares (verificaNumeroPrimoV1), inicialmente sem nenhuma otimiza??o, por?m ap?s algumas leituras evolu? at? a situa??o que ser? apresentada a seguir. Tamb?m implementei uma segunda vers?o de valida??o dos n?meros primos dentro do universo de n?meros ?mpares (verificaNumeroPrimoV2), onde neste realizado uma valida??o verificando se o resto da divis?o ? zero e o divisor ? diferente do n?mero a ser validado, o que define que o n?mero n?o ? primo, e uma segunda checagem que valida se o Quociente da divis?o ? menou ou igual ao divisor, o que define que este n?mero ? um n?mero primo.
Como comentei, ap?s algumas leituras realizei umas otimiza??es, dentre elas:
- delimitei a valida??o at? a ra?z quadrada do n?mero a ser validado
- verifica??o se o n?mero possu? ra?z quadrada, o que define que n?o ? um n?mero primo
- valida??o se o quociente da divis?o do pr?ximo n?mero ?mpar ap?s a ra?z quadrada do n?mero ? inferior ou igual ao divisor, o que define que o n?mero validado ? primo.
Com essas otimiza??es obtive o respectivo algoritmo:
Link do arquivo raw, no final do arquivo, tem um array com os n?meros primos encontrados de 1 a 100000
Links de refer?ncia:
- Como identificar se um n?mero ? primo ou n?o? (verifica??o do quociente da divis?o)






