Я написал этот фрагмент кода, в который вы вводите любое целое число, и оно даст вам наименьшее простое число этого целого числа. , но он, похоже, терпит неудачу для действительно очень длинных чисел. Почему это, и как я могу это исправить?Почему программа терпит неудачу на самом деле?
import java.util.Scanner;
public class ExThree {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter number: ");
long num = sc.nextInt();
boolean isPrime = false ;
long prime;
if(num>0){
for(prime=2; prime<num && !isPrime; prime=prime+1){
if(num%prime==0){
isPrime=true;
}
}
if(prime==num){
prime=prime+1;
}
System.out.println(prime-1);
}
else{
System.out.println("bad input");
}
}
}
Для действительно очень длинного номера вам нужно «BigInteger» – Masudul
«кажется, что сбой» - это очень неопределенное описание того, что происходит, и «действительно очень длинные цифры» - очень неопределенное описание причины. Приведите пример ввода и ожидаемого/фактического вывода. –
для 562612851654168 эта программа не сработает, например, – Invader