`` 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)