2015-10-14 2 views
1

Я работал над некоторым кодом Java, чтобы показать простые числа. Я дошел до того, что он показал все простые числа от 0 до 100.Показывать определенное количество простых чисел

Как бы это сделать, чтобы я мог задать переменную, чтобы сказать 20, и это покажет мне первые 20 простых чисел.

Мой код:

public class PrimeNumber { 

    /** 
    * @param args the command line arguments 
    */ 
private static boolean prime = true; 
private static int count = 20; 

    public static void main(String[] args) { 

     for (int i = 2; i < 100; i++) { 
      for (int j = 2; j < 100; j++) { 
       if(i == j) 
       { 
        continue; 
       } 
       if (i % j == 0) { 
        prime = false; 
        break; 
       } else { 
        prime = true; 
       } 
      } 
      if (prime) { 
       System.out.println(i + " is a Prime:"); 
      } 

     } 

    } 

} 

ответ

0

Вот простейший из возможных реализаций, для кода OPS.

Замените переменную count и проверьте ее на внешнем for loop, пока она не достигнет zero. Также Inner for-loop должен проверять только до текущего значения (i/2 + 1). В другой половине вы всегда можете пропустить, значение будет делить число будет i себя.

public class PrimeNumber {  
    /** 
    * @param args the command line arguments 
    */ 
    private static boolean prime = true; 
    private static int count = 20; 

    public static void main(String[] args) { 

    for (int i = 2; count>0; i++) { 
     for (int j = 2; j < i/2 + 1; j++) { 
     if (i % j == 0) { 
      prime = false; 
      break; 
     } else { 
      prime = true; 
     } 
     } 
     if (prime) { 
     System.out.println(i + " is a Prime:"); 
     count--; 
     }  
    }  
    }  
} 
0

Для этого вы должны установить верхнее значение для цикла for для i. Как вы хотите только первые 20 простых чисел, поэтому

public class PrimeNumber { 
private static boolean prime = true; 
private static int count = 20; 

    public static void main(String[] args) { 

     for (int i = 2; i < count+1; i++) { 
      for (int j = 2; j < 100; j++) { 
       if(i == j) 
       { 
        continue; 
       } 
       if (i % j == 0) { 
        prime = false; 
        break; 
       } else { 
        prime = true; 
       } 
      } 
      if (prime) { 
       System.out.println(i + " is a Prime:"); 
      }}}}