mathomatic/primes/primorial

45 lines
1.0 KiB
Python
Executable File

#!/usr/bin/python
# This is a Python program to display large primorials.
# A primorial is the product of all primes up to the given number.
# Uses the programs "matho-primes" and "matho-mult" as follows:
# primorial 1000
# runs:
# matho-primes 0 1000 | matho-mult
#
# For fun, try:
# primorial `matho-primes 2 97`
#
# to display all unique primorials from 2 to 97.
import os
import sys
def usage(ev):
print "This program calculates large primorials."
print
print "Usage: %s integers" % os.path.basename(sys.argv[0])
print
print "A primorial is the product of all primes up to the given number."
sys.exit(ev)
def output_primorial(arg):
sys.stdout.write(arg + "# = ")
sys.stdout.flush()
if (os.system("matho-primes 0 " + arg + " | matho-mult") != 0):
sys.exit(1)
args = sys.argv[1:]
if (args == []):
usage(2)
else:
for arg in args:
try:
if (int(arg) < 1):
print >>sys.stderr, "Number too small."
sys.exit(1)
except:
print >>sys.stderr, "Positive integer required."
usage(1)
output_primorial(arg)