质数校正(2 个数组)

Prime Number Correction (2 Arrays)

所以基本上我想做的是使用一个数组来填充素数并将结果输出到另一个数组。我知道我可以简单地用 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 + " ");
     }

   }
 }
} 

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

素数是大于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]);
         }

     }
   }
}

希望对您有所帮助

首先,java 最佳做法之一是将 class 名称的首字母大写(例如: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);
     }
 }
}

}