хорошо теперь это терпит неудачу в течение 15

отаю над программой, которая принимает целое число и находит количество комбинаций последовательных сумм, которые имеет целое число:

Число 13 может быть выражено как сумма последовательных положительных целых чисел 6 + 7. Четырнадцать могут быть выражены как 2 + 3 + 4 + 5, также сумма последовательных положительных целых чисел. Некоторые числа могут быть выражены как сумма последовательных положительных целых чисел более чем одним способом. Например, 25 - это 12 + 13, а также 3 + 4 + 5 + 6 + 7.

Я исследовал и прочитал, что это число нечетных факторов минус один. Поэтому я написал программу, которая находит число нечетных факторов, и в некоторых случаях мой ответ все еще неверен. Любое понимание?

Кажется, код работает нормально, но происходит сбой из-за тайм-аута, что, вероятно, связано с ошибкой оптимизации.

Ограничения для возможного размера ввода от 1 до 10 ^ (12)

Код ниже скопирован сответ Альфасина ниже:

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;


  static long consecutive(long num) {
    while (num % 2 == 0) num /= 2;
    return  consecutiveHelper(num);
}

public static long consecutiveHelper(long num) {
    return LongStream.rangeClosed(3, (num / 2)).parallel().filter(x -> x % 2 != 0).map(fn -> (num % fn == 0) ? 1 : 0).sum();
}
        public static void main(String[] args) throws IOException {
        Scanner in = new Scanner(System.in);
        final String fileName = System.getenv("OUTPUT_PATH");
        BufferedWriter bw = null;
        if (fileName != null) {
            bw = new BufferedWriter(new FileWriter(fileName));
        }
        else {
            bw = new BufferedWriter(new OutputStreamWriter(System.out));
        }

        int res;
        long num;
        num = Long.parseLong(in.nextLine().trim());

        res = consecutive(num);
        bw.write(String.valueOf(res));
        bw.newLine();

        bw.close();
    }
}

Это то, что у меня сейчас есть

Ответы на вопрос(2)

Ваш ответ на вопрос