Java считает, что квадрат простого числа больше 100 000 имеет коэффициент меньше 30 000 [дубликат]JAVA

Программисты JAVA общаются здесь
Anonymous
Java считает, что квадрат простого числа больше 100 000 имеет коэффициент меньше 30 000 [дубликат]

Сообщение Anonymous »

Я создал проект intelliJ на Java 11. Я запустил следующий код:

Код: Выделить всё

long bigSquaredPrime = 100151 * 100151;

System.out.println(bigSquaredPrime % 50207);

System.out.println(bigSquaredPrime % 28687);
Несмотря на то, что 100151 — простое число, и, следовательно, bigSquaredPrime должен иметь его в качестве единственного множителя, кроме 1 и самого себя, обе эти строки возвращают 0. (28 687 и 50 207 оба являются простыми. Я выбрал эти конкретные числа, потому что метод, который я написал для поиска простых множителей, возвращал их как простые множители 100151 в квадрате.)
Почему это происходит? Если при работе с большими числами нельзя доверять модулю, как лучше всего искать делимость при проверке простых множителей?

Вернуться в «JAVA»