`` Prime factorisation of a number
`` Usage: prime number [number] [,number] ...
`` type one or several numbers separated by commas
`` http://www.scriptol.net
int prevfact = 0
void display(number d, int k)
if prevfact <> 0
echo " * "
else
echo " = "
/if
prevfact + 1
echo d
if k > 1 echo "^", k
return
void primeFactor(number n)
number d
int k
prevfact = 0
d = n + 1
if(n + 3) <> (d + 2)
print n , "is too large to process."
return
/if
if fmod(n,1.0) <> 0.0
print
n, "is
not integer."
return
/if
echo n
if n
< 2.0
print "is less than 2."
return
> 2.0
d = 2
k = 0
while fmod(n, d) = 0.0
n / d
let k + 1
if k <> 0 let display(d,k)
d = 3
while (d * d) <= n
k = 0
while fmod(n, d) = 0.0
n / d
let k + 1
if k <> 0 let display(d,k)
let d + 2
/if
if n > 1
if prevfact = 0
echo " is prime"
else display(n, 1)
/if
/if
print
return
int main (int argc, array argv)
print "Prime Factors"
if argc < 2 print "Usage: prime number [, number]*"
for int i in 1 .. argc - 1
dyn d = argv[i]
text t = d.toText()
number n = t.toNumber()
primeFactor(n)
/for
return 0
main($argc, $argv)