Проект Эйлера последовательная простая сумма Java

#java

#java

Вопрос:

Я написал программу, которая не работала для project Euler problem 50, поэтому, если вы не решили эту проблему, вероятно, не смотрите, хотите ли вы ее решить.

проблема связана здесь: https: //projecteuler.net/problem=50

Спойлер для ответа ниже

Мой ответ был 997661, что было ровно на десять больше, чем реальное решение

Мне кажется, что моя программа работает, но я неопытен и надеялся, что более опытный программист сможет найти ошибку.

 import java.util.ArrayList;

public class ConsecutivePrimeSum {

  public static void main(String[] args) {
      ArrayList<Integer> primes = new ArrayList<Integer>();
      for (int i = 2; i < 1000000; i  ) {
          if (isPrime(i)) {
              primes.add(i);
          }
      }
      int total = 0;
      int counter = 0;


      while (total   primes.get(counter) < 1000000) {
          total  = primes.get(counter);
          System.out.println(primes.get(counter));
          counter  = 1;
      }
      System.out.println(total   " "   counter);
  }

  public static boolean isPrime(Integer number) {
      int sqrt = (int) Math.sqrt(number)   1;
      for (int i = 2; i < sqrt; i  ) {
          if (number % i == 0 amp;amp; number != i) {
              return false;
          }
      }
      return true;
  }
}
  

Комментарии:

1. «Какое простое число, меньшее миллиона, может быть записано как сумма наиболее последовательных простых чисел?» — Где вы максимизируете общее количество простых чисел?. Кроме того, я не помню, чтобы project euler публиковал какие-либо ответы.

2. Еще один момент — есть более быстрые способы выяснить, является ли число простым (подсказка: решетка Эратосфена). Это соответствует вашему варианту использования, поскольку у вас уже есть List простые числа

3. Сделанное вами утверждение о том, что результаты на 10 больше, чем вы ожидаете, неверно, причина вашего конкретного сценария с данными заключается в том, что вы не использовали скользящее окно.

4. Под максимизацией вы подразумеваете ограничение количества простых чисел, которые я добавляю в список? Я думал, что могут быть более простые способы поиска простых чисел, но я хотел посмотреть, работает ли мой метод.

5. Спасибо, что сообщили мне о скользящем окне, вы узнали об этом через формальное образование? Я поднялся так высоко, как только мог, в своей средней школе и не узнал ничего подобного.