forked from mk-fg/fgtk
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprimes
executable file
·26 lines (21 loc) · 865 Bytes
/
primes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/env python3
import os, sys
def main(args=None):
import argparse
parser = argparse.ArgumentParser(
description='Print prime numbers in specified range, one per line, if any.')
parser.add_argument('n_min', type=int, help='Number range start.')
parser.add_argument('n_max', nargs='?', type=int, help='Number range end.')
parser.add_argument('-a', '--all', action='store_true',
help='Print all primes within range, not just the first one.')
opts = parser.parse_args(sys.argv[1:] if args is None else args)
a, b, one = opts.n_min, opts.n_max, not opts.all
if not b: one, b = True, a + 1000
if not a % 2: a += 1
for n in range(a, b, 2): # skips most common factor
for x in range(3, int(n**0.5) + 1): # n = x*y, so min(x, y) <= sqrt(n)
if not n % x: break
else:
print(n)
if one: break
if __name__ == '__main__': sys.exit(main())