Primeira vez aqui? Seja bem vindo e cheque o FAQ!
x

Como fazer um programa para buscar números primos num intervalo usando programação funcional?

+1 voto
14 visitas
perguntada Out 27 em Programação Computacional por Stuart Mill (1,124 pontos)  
republicada Nov 1 por Stuart Mill

Quero uma função simples que receba como argumento um intervalo que quero procurar ( \( (0,n) \) ) e me retorne os primos nesse intervalo.

Compartilhe

1 Resposta

+1 voto
respondida Out 27 por Stuart Mill (1,124 pontos)  

Uma solução no Python seria a seguinte (veja que tento deixar tudo 'encapsulado' dentro da função):

def achar_primos(intervalo):
    import math #Ideia é não fazer a função depender de nada de fora dela, então importo dentro
    def is_prime(number): # Definindo a função auxiliar dentro da função de interesse
        if number > 1:
            if number == 2:
                return True
            if number % 2 == 0:
                return False
            for current in range(3, int(math.sqrt(number) + 1), 2): # step = 2 => busca só nos ímpares
                if number % current == 0: 
                    return False
            return True
        return False
    primos = [primo for primo in list(range(intervalo)) #List comprehension; veja que já crio a lista com os elementos no intervalo aqui
                if is_prime(primo)]  # No Python, está subentendido que a condição é 'if is_prime() == True'
    return primos

if __name__ == '__main__':
    print(achar_primos(1000))
comentou Out 28 por danielcajueiro (5,776 pontos)  
Ficou bem legal e explicito!
...