Код оптимизации может быть сложно.Сделать код оптимальным может быть что-то другое.
Есть много подвопросов: оптимизация, с точки зрения скорости / памяти?На каком устройстве?С самого начала или после долгого времени работы?
Но сначала дайте переменной явное имя, потому что A, B, T ничего не значат для меня / другого кода, и более длинное имя переменной не замедлитсяваш код.Во-вторых, использование профилировщика может вам помочь, я обычно использую jvisualvm.exe (в jdk).В-третьих, более быстрый код на вашей машине не обязательно будет быстрее на другом компьютере / устройстве.
В вашем методе getLucky переменная lucky не обязательна, вы можете сделать это: return (isPrime (sum) && isPrime(sum1));
но это сделает ваш код менее читабельным.
В вашем методе isPrime цикл for проверяет, что i является целым числом, а сумма длинным.Поэтому, если сумма больше, чем MAX_INTEGER, у вас будут проблемы.