Mercurial > hg > config
annotate python/prime.py @ 802:b5a59c3e4421
more fixups, for example, but lets throw it away anyway
| author | Jeff Hammel <k0scist@gmail.com> |
|---|---|
| date | Fri, 28 Oct 2016 16:57:50 -0700 |
| parents | 8593b0384d3e |
| children |
| rev | line source |
|---|---|
| 238 | 1 #!/usr/bin/env python |
| 2 | |
|
802
b5a59c3e4421
more fixups, for example, but lets throw it away anyway
Jeff Hammel <k0scist@gmail.com>
parents:
253
diff
changeset
|
3 """ |
|
b5a59c3e4421
more fixups, for example, but lets throw it away anyway
Jeff Hammel <k0scist@gmail.com>
parents:
253
diff
changeset
|
4 print prime numbers for each argument given |
|
b5a59c3e4421
more fixups, for example, but lets throw it away anyway
Jeff Hammel <k0scist@gmail.com>
parents:
253
diff
changeset
|
5 """ |
|
b5a59c3e4421
more fixups, for example, but lets throw it away anyway
Jeff Hammel <k0scist@gmail.com>
parents:
253
diff
changeset
|
6 |
| 238 | 7 def prime(number): |
|
802
b5a59c3e4421
more fixups, for example, but lets throw it away anyway
Jeff Hammel <k0scist@gmail.com>
parents:
253
diff
changeset
|
8 """determines if `number` is prime""" |
|
b5a59c3e4421
more fixups, for example, but lets throw it away anyway
Jeff Hammel <k0scist@gmail.com>
parents:
253
diff
changeset
|
9 # XXX this is owefully inefficient and is written as |
|
b5a59c3e4421
more fixups, for example, but lets throw it away anyway
Jeff Hammel <k0scist@gmail.com>
parents:
253
diff
changeset
|
10 # a (bad) example only |
|
b5a59c3e4421
more fixups, for example, but lets throw it away anyway
Jeff Hammel <k0scist@gmail.com>
parents:
253
diff
changeset
|
11 |
| 238 | 12 half = int(number / 2) |
| 13 for i in range(2, half): | |
| 14 if not number % i: | |
| 15 return False | |
| 16 return True | |
| 17 | |
|
253
8593b0384d3e
add a function for computing primes
Jeff Hammel <jhammel@mozilla.com>
parents:
238
diff
changeset
|
18 def primes(n): |
|
8593b0384d3e
add a function for computing primes
Jeff Hammel <jhammel@mozilla.com>
parents:
238
diff
changeset
|
19 return [i for i in range(2,n) |
|
8593b0384d3e
add a function for computing primes
Jeff Hammel <jhammel@mozilla.com>
parents:
238
diff
changeset
|
20 if not [True for j in range(2,1 + i/2) |
|
8593b0384d3e
add a function for computing primes
Jeff Hammel <jhammel@mozilla.com>
parents:
238
diff
changeset
|
21 if not i%j]] |
|
8593b0384d3e
add a function for computing primes
Jeff Hammel <jhammel@mozilla.com>
parents:
238
diff
changeset
|
22 |
|
8593b0384d3e
add a function for computing primes
Jeff Hammel <jhammel@mozilla.com>
parents:
238
diff
changeset
|
23 |
| 238 | 24 if __name__ == '__main__': |
|
802
b5a59c3e4421
more fixups, for example, but lets throw it away anyway
Jeff Hammel <k0scist@gmail.com>
parents:
253
diff
changeset
|
25 import argparse |
|
b5a59c3e4421
more fixups, for example, but lets throw it away anyway
Jeff Hammel <k0scist@gmail.com>
parents:
253
diff
changeset
|
26 parser = argparse.ArgumentParser(description=__doc__) |
|
b5a59c3e4421
more fixups, for example, but lets throw it away anyway
Jeff Hammel <k0scist@gmail.com>
parents:
253
diff
changeset
|
27 parser.add_argument('arg', type=int, nargs='+', |
|
b5a59c3e4421
more fixups, for example, but lets throw it away anyway
Jeff Hammel <k0scist@gmail.com>
parents:
253
diff
changeset
|
28 help="(positive) integer to find the primes for") |
|
b5a59c3e4421
more fixups, for example, but lets throw it away anyway
Jeff Hammel <k0scist@gmail.com>
parents:
253
diff
changeset
|
29 options = parser.parse_args() |
|
b5a59c3e4421
more fixups, for example, but lets throw it away anyway
Jeff Hammel <k0scist@gmail.com>
parents:
253
diff
changeset
|
30 for arg in options.arg: |
|
b5a59c3e4421
more fixups, for example, but lets throw it away anyway
Jeff Hammel <k0scist@gmail.com>
parents:
253
diff
changeset
|
31 print prime(arg) |
