Illustrates working with prime numbers and the IntegerMath class in the Extreme.Mathematics namespace in IronPython.
import numerics
# We use many classes from the Extreme.Mathematics.SpecialFunctions
# namespace.
from Extreme.Mathematics import *
#/ Illustrates working with prime numbers using the
#/ IntegerMath class in the Extreme.Mathematics.SpecialFunctions
#/ namespace of the Extreme Optimization Mathematics
#/ Library for .NET.
#
# Factoring numbers
#
n = 1001110110
factors = IntegerMath.Factorize(n)
print "{0} = {1}".format(n, factors[0]),
for index in range(1, factors.Length):
print " *", factors[index],
print
# Factors that occur multiple times is repeated as many times as necessary:
n = 256 * 6157413
factors = IntegerMath.Factorize(n)
print "{0} = {1}".format(n, factors[0]),
for index in range(1, factors.Length):
print " *", factors[index],
print
# The 64bit version can safely factor numbers up to 48 bits long:
n = 1296523 * 1177157
factors = IntegerMath.Factorize(n)
print "{0} = {1}".format(n, factors[0]),
for index in range(1, factors.Length):
print " *", factors[index],
print
#
# Prime numbers
#
# The IsPrime method verifies if a number is prime or not.
n = 801853937
print n, "is prime?", IntegerMath.IsPrime(n), "!"
n = 801853939
print n, "is prime?", IntegerMath.IsPrime(n), "!"
# MextPrime gets the first prime after a specified number.
# You can call it repeatedly to get successive primes.
# Let#s get the 10 smallest primes larger than one billion:
n = 1000000000
print "\nFirst 10 primes greater than 1 billion:"
for index in range(0,10):
n = IntegerMath.NextPrime(n)
print "{0:15}".format(n),
print
# PreviousPrime gets the last prime before a specified number.
n = 1000000000
print "Last 10 primes less than 1 billion:"
for index in range(0,10):
n = IntegerMath.PreviousPrime(n)
print "{0:15}".format(n),
print