Jump to content

Números primos - One liner


Localhost
 Share

Recommended Posts

Se queres ter tudo numa linha, basta usares o ; xD.

Not a one-liner.

Claro que pensei na srqt mas tinha de importar o módulo e a ideia era mesmo sem utilizar ;  😄

Não precisas de importar módulos para usar a raiz. B)

print [k for k in range (2,int (raw_input ())) if len ([x for x in range (2,int(k**.5)+1) if k % x == 0]) == 0]
Link to comment
Share on other sites

Decidi reabrir o concurso 😄

d = range(2, 100)
[a for a in d if a not in [b for c in d for b in d if c<>b and b%c==0]]

Esta linha de código devolve os números primos que se encontram numa lista, a lista tem de começar no dois e não podem faltar lá números primos (d).

Uma forma de optimizar isto é retirar todos os pares [2]+range(3,100,2).

Crivo de eratostenes B)

(Eia já lá vão dois anos, como o tempo passa. A linha está bonita mas super ineficiente)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.