• Что от меня хочет лямбда?

    @faoxy
    В вашем случае лямбда не сработала т.к. вы не сделали вызов a.chislo(x).  А вообще можно сделать гораздо проще:
    public static void main(String[] args) {
            Predicate<Integer> isDivided13 = x -> (x%13) == 0;
            Boolean result = isDivided13.test(10);
            System.out.println(result);
        }


    Здесь в первой строчке за main определяется поведение (x -> (x%13) == 0). И в следующей запускается вычисление для конкретного значения с помощью вызова метода test. Здесь стоит отметить, что интерфейс Predicate является стандартным конструктором типа и принимает в качестве дженерика тип входного значения (аргумент метода test).
    Ответ написан
    Комментировать
  • Как разбить отрезок на неравные доли?

    Если проверять простоту числа будете последовательным перебором до sqrt(n), то «сложность» можно считать пропорциональной квадратному корню из N. И нужно найти участки с одинаковой площадью под повёрнутой на 90° параболой над каждым из участков.
    5d03a1fbcd84e308697188.png
    Интегралы, производные – вспоминайте )

    Поскольку задача дискретная, только целые числа рассматриваются, решение всегда будет не точным – как-то будут отличаться «нагрузки» соседних отрезков. И возможны крайние случаи без решения. Например, когда отрезок от 5 до 6 нужно разбить на 1000 частей )

    При проверке числа перебирать достаточно только нечетные (в начале проверив чётность N) и не превышать квадратный корень N.

    Интеграл от квадратного корня это 2/3 * sqrt(x^3)
    Считаете площадь под графиком от Min до Max.
    Бьете эту площадь на N равных кусков. И отсчитываете соответствующие такому делению значения x.
    Ответ написан
    Комментировать