public class AksTest { private static final long[] c = new long[64]; public static void main(String[] args) { for (int n = 0; n < 10; n++) { coeff(n); show(n); } System.out.print("Primes:"); for (int n = 1; n < c.length; n++) if (isPrime(n)) System.out.printf(" %d", n); System.out.println(); } static void coeff(int n) { c[0] = 1; for (int i = 0; i < n; c[0] = -c[0], i++) { c[1 + i] = 1; for (int j = i; j > 0; j--) c[j] = c[j - 1] - c[j]; } } static boolean isPrime(int n) { coeff(n); c[0]++; c[n]--; int i = n; while (i-- != 0 && c[i] % n == 0) continue; return i < 0; } static void show(int n) { System.out.print("(x-1)^" + n + " ="); for (int i = n; i >= 0; i--) { System.out.print(" + " + c[i] + "x^" + i); } System.out.println(); } }