import java.util.ArrayList; public class CP { public int[] chPrimes = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 47, 53, 59, 67, 71, 83, 89, 101, 107, 109 }; public static void main(String[] args) { CP chenPrimes = new CP(); ArrayList CPList = new ArrayList<>(); int limit = 10000; for (int i = 0; i < chenPrimes.chPrimes.length; i++) { CPList.add(chenPrimes.chPrimes[i]); } for (int number = 113; number < limit; number++) { if (isPrime(number) && (isPrime(number + 2) || isSemiprime(number + 2))) { CPList.add(number); } } System.out.println("Chen primes less than 10,000:"); System.out.println(CPList); } public static boolean isPrime(int num) { if (num < 2) { return false; } for (int i = 2; i * i <= num; i++) { if (num % i == 0) { return false; } } return true; } public static boolean isSemiprime(int num) { for (int i = 2; i * i <= num; i++) { if (num % i == 0 && isPrime(i) && isPrime(num / i) && i != num / i) { return true; } } return false; } }