// Program to read a sequence of integers one at a time // and print their prime factors. // Class Main contains the main function main(). class Main { // The main function. void main () { Integer number; while (true) { number = system.readInteger(); factorise(number); } } // Prints the prime factors of n. void factorise (Integer n) { Integer cand; Boolean more; // more == n > 1 && cand*cand <= n // required because no "&&" or "||" in J- system.print(n); system.print(" = "); if (n > 1) { more = cand*cand <= n; } else { more = false; } while (more) { Boolean isfactor; // isfactor == n > 1 && cand divides n if (n > 1) { isfactor = n % cand == 0; } else { isfactor = false; } while (isfactor) { system.print(cand); n = n / cand; if (n > 1) { system.print(" . "); } if (n > 1) { isfactor = n % cand == 0; } else { isfactor = false; } } cand = cand + 1; if (n > 1) { more = cand*cand <= n; } else { more = false; } } if (n > 1) { system.print(n); } system.println(); } }