素数校正(2个阵列)

时间:2017-04-24 23:10:32

标签: java arrays primes

基本上我要做的就是使用一个数组来填充素数并将结果输出到不同的数组中。我知道我可以用2 for循环打印它们并使用布尔语句打印出来的值,但我真的想这样做并弄清楚我做错了什么。

public class primeSum{

public static void main(String[] args) {

int[] array = new int[100];
int[] result = new int[array.length];
int aLength = array.length;

for(int i = 2; i < aLength; i++){
    if(i%2 == 0 && i%3 == 0){
        break;
    }
    else{
        result[i] = i;
        System.out.println(i + " ");
     }

   }
 }
} 

我只想将素数添加到结果数组中并将其打印出来。

2 个答案:

答案 0 :(得分:0)

素数是一个大于1的整数,只有两个整数因子是1和它本身。

public class primeSum
{
   public static void main (String[] args)
   {        
       int[] array  = new int [100];
       int num =0;

       int[] result = new int[100];

       for (int i = 1; i <= array.length; i++)         
       {              
          int counter=0;      
          for(num =i; num>=1; num--)
      {
             if(i%num==0)
         {
        counter = counter + 1;
         }
      }
      if (counter ==2)
      {

        result[i] = i;
      } 
       }    

       for(int j=2; j<=array.length; j++){

         if(result[j] != 0){
             System.out.println(result[j]);
         }

     }
   }
}

希望这有帮助

答案 1 :(得分:0)

首先,java最佳实践之一是以大写形式写出类名的第一个字母(例如:class PrimeSum)。 这是一个简单的方法来做你想要的。

public class PrimeSum{

 public static void main(String[] args) {

  int[] array = new int[100];
  int[] result = new int[array.length];
  int aLength = array.length;

  for(int i = 2; i < aLength; i++){

    if(isPrime(i)){

    result[i] = i;

    System.out.println(i); // if you want you can avoid this instruction and active above "displayNonNullValueArray(result);"

 }
 } 

 //displayNonNullValueArray(result); you can also use this instruction to display your array "result"

}

// test if an integer is a prime number
static boolean isPrime(int m){

  for(int i=1; i<=m; i++){

      if(m%i==0 && i!=1 && i!=m){
         return false;
      }
  }

  return true;
   }

   //display an non-null values of an array
static void displayNonNullValueArray(int[] a){

 for(int val:a){

     if(val!=0){
         System.out.println(val);
     }
 }
}

}