Source code for packagename.example_mod

import numpy as np


[docs]def primes(imax): """ Returns prime numbers up to imax. Parameters ---------- imax: int The number of primes to return. This should be less or equal to 10000. Returns ------- result: list The list of prime numbers. """ p = range(10000) result = [] k = 0 n = 2 if imax > 10000: raise ValueError("imax should be <= 10000") while len(result) < imax: i = 0 while i < k and n % p[i] != 0: i = i + 1 if i == k: p[k] = n k = k + 1 result.append(n) if k > 10000: break n = n + 1 return result
[docs]def do_primes(n, usecython=False): if usecython: from .example_c import primes as cprimes print('Using cython-based primes') return cprimes(n) else: print('Using pure python primes') return primes(n)
[docs]def main(args=None): from astropy.utils.compat import argparse from time import time parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('-c', '--use-cython', dest='cy', action='store_true', help='Use the Cython-based Prime number generator.') parser.add_argument('-t', '--timing', dest='time', action='store_true', help='Time the Fibonacci generator.') parser.add_argument('-p', '--print', dest='prnt', action='store_true', help='Print all of the Prime numbers.') parser.add_argument('n', metavar='N', type=int, help='Get Prime numbers up to this number.') res = parser.parse_args(args) pre = time() primes = do_primes(res.n, res.cy) post = time() print('Found {0} prime numbers'.format(len(primes))) print('Largest prime: {0}'.format(primes[-1])) if res.time: print('Running time: {0} s'.format(post - pre)) if res.prnt: print('Primes: {0}'.format(primes))