rem - return p mod q function mod(p, q = integer) = integer end = p - q * (p/q) dim integer factors(16) rem log2(maxint) is sufficiently large comment Find the prime factors of n and store in global array factors (arrays cannot be passed as parameters) and return the number found. If n is prime, it will be stored as the only factor. end function primefactors(n = integer) = integer var p, count = integer p = 2 count = 1 while n >= (p * p) do begin if mod(n, p) = 0 then begin factors(count) = p count = count + 1 n = n / p end else p = p + 1 end factors(count) = n end = count rem -- exercise the routine by checking odd numbers from 77 to 99 var i, k, nfound = integer for i = 77 to 99 step 2 nfound = primefactors(i) print i;"; "; for k = 1 to nfound print factors(k); next k print next i end