Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Mine never defines is_prime():

  def all_prime_elements(sequence):
    """Returns every prime element of the sequence."""
    return [x for x in sequence if is_prime(x)]


  def all_prime_factors(sequence):
    """Returns every prime factor of the sequence."""
    return [x for x in sequence if is_prime(x) and x!= 1]


  def all_prime_factors_with_limit(sequence, limit):
    """Returns every prime factor of the sequence up to the given limit."""
    return [x for x in sequence if is_prime(x) and x!= 1]


  def all_prime_factors_with_limit_and_step(sequence, limit, step):
    """Returns every prime factor of the sequence up to the given limit."""
    return [x for x in sequence if is_prime(x) and x!= 1]


  def all_prime_factors_with_limit_and_step_and_start(sequence, limit, step, start):
    """Returns every prime factor of the sequence up to the given limit."""
    return [x for x in sequence if is_prime(x) and x!= 1]


  def all_prime_factors_with_limit_and_step_and_start_and_end(sequence, limit, step, start, end):
    """Returns every prime factor of the sequence up to the given limit."""
    return [x for x in sequence if is_prime(x) and x!= 1]


  def all_prime_factors_with_limit_and_step_and_start_and_end_and_step(sequence, limit, step, start, end, step):
    """Returns every prime factor of the sequence up to the given limit."""
    return [x for x in sequence if is_prime(x) and x!= 1]
(and so on)


If I prompt it, it actually comes up with a decent function:

  def is_prime(element):
    """Returns whether a number is prime."""
    if element < 2:
      return False
    if element == 2:
      return True
    if element % 2 == 0:
      return False
    for i in range(3, int(math.sqrt(element)) + 1, 2):
      if element % i == 0:
        return False
    return True
Of course, if you ask it to keep generating past that there's the usual slow descent into madness.


I got something similar:

    def is_prime(n):
      """ Use sieve of erasthotenes to check if n is prime. """
      if n < 2:
         return False
      if n == 2:
         return True
      if n % 2 == 0:
         return False
      for i in range(3, int(n\*0.5)+1, 2):
         if n % i == 0:
            return False
      return True




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: