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
42 visitas
perguntada Out 27, 2019 em Programação Computacional por Stuart Mill (1,214 pontos)  
republicada Nov 1, 2019 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, 2019 por Stuart Mill (1,214 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, 2019 por danielcajueiro (5,836 pontos)  
Ficou bem legal e explicito!
...