2014-01-12 3 views
1

Я пытаюсь сделать простой поисковик чисел на Java, и я знаю, что их уже много. Я получаю ошибку вычисления, когда я запускаю ее, и никаких «быстрых исправлений». Здесь ошибка: "Exception in thread "main" java.lang.ArithmeticException:/by zero at PrimeNumber.main(PrimeNumber.java:12)"Ошибка вычисления счетчика первичного номера

Вот код:

public class PrimeNumber { 
    public static void main(String rane[]){ 

     int f1 = 0; 
     int f2 = 0; 
     int m = 0; 
     int p = 0; 

     loop: 
     for (p = f1 % f2; p > 0; f1 += 1){ 
      if (f1 < 50){ 
       //Do nothing 
      }else{ 
       f2 += 1; 
       if (f2 > 50){ 
        System.out.println("Done!"); 
        break; 
       } 
      } 
      if (p == m){ 
       f1 += 1; 
       f2 += 2; 
       m = 0; 
       break loop; 
      } 
     } 
    } 
} 

Пожалуйста, дайте мне знать, если я могу сократить этот код или сделать его лучше. Спасибо!

+1

Не пытайтесь запустить цикл в '0% 0', начиная с 1, и не забудьте проверить делимость! –

ответ

2

Ну первая итерация цикла вычисляет

p = f1 % f2 

но f2 = 0. А для вычисления по модулю производится деление. Почему бы не начать с значимых ценностей?

+0

Вы можете заметить, что 'f1' также' 0'. –

+0

Правда, но это не приводит к арифметической ошибке. 0/3 = 0 –

Смежные вопросы