劣质代码,抛砖引玉 public class Test { public static void main(String[] args) { int[] array = {2, 3, 4, 5,6}; System.out.println(test(array)); System.out.println(); array = new int[]{2, 3}; System.out.println(test(array)); } public static int test(int[] array) { int result = 0; int limit = (int) Math.pow(2, array.length); for (int i = 1; i < limit; i++) { int sum = 0; for (int j = 0; j < array.length; j++) { int num = i >> j; if ((num & 1) != 0) { sum += array[j]; } } if (checkPrim(sum)) { System.out.println(sum); result++; } } return result; } public static boolean checkPrim(int number) { for (int i = 2; i * i <= number; i++) { if (number % i == 0) { return false; } } return true; } }
public class Test { public static void main(String[] args) {
int[] array = {2, 3, 4, 5,6};
System.out.println(test(array));
System.out.println();
array = new int[]{2, 3};
System.out.println(test(array));
} public static int test(int[] array) {
int result = 0;
int limit = (int) Math.pow(2, array.length);
for (int i = 1; i < limit; i++) {
int sum = 0;
for (int j = 0; j < array.length; j++) {
int num = i >> j;
if ((num & 1) != 0) {
sum += array[j];
}
}
if (checkPrim(sum)) {
System.out.println(sum);
result++;
}
}
return result;
} public static boolean checkPrim(int number) {
for (int i = 2; i * i <= number; i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
}
可以改为:int limit=1<<array.length;
public class Test
{
public static void main(String[] args)
{
int[] data = {1,2,3,4};
int count = 0;
for(int i = 0;i < data.length;i++)
{
for(int j = i;j < data.length;j++)
{
int result = 0;
boolean flag = true;
for(int k = i;k <= j;k++)
{
System.out.print(data[k]);
result += data[k];
System.out.print("\t");
}
System.out.println();
for(int t = 2;t < result;t++)
{
if(result % t == 0)
{
flag = false;
}
}
if(flag)
{
count++;
}
}
}
System.out.println("count = " + count);
}
}