link "factors" procedure main(A) every nf := semiprime(n := !A) do write(n," = ",nf[1]," * ",nf[2]) end procedure semiprime(n) # Succeeds and produces the factors only if n is semiprime. return (2 = *(nf := factors(n)), nf) end