示例#1
0
def prime_factors(n):
    """Yield primes which evenly divide n."""
    sqrt_n = n ** 0.5
    for p in primes():
        if p > sqrt_n:
            return
        if not n % p:
            yield p
示例#2
0
def first_factor(n):
    """Find the smallest positive integer that evenly divides n."""
    sqrt_n = n ** 0.5
    for p in primes():
        if p > sqrt_n:
            # n must be prime
            return n
        if not n % p:
            return p
示例#3
0
def nth_prime(n):
    """Find the nth prime number."""
    return next(islice(primes(), n - 1, None))