public class LargestPrimeFactor {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int cases = scan.nextInt();
int num = 0, temp = 0;
while(cases!=0) {
num = scan.nextInt();
for(int i=2; i<=num; i++)
if(num%i==0) {
if(isPrime(i)) {
if(temp<i)
temp = i; //to always have the largest factor
}
num/=i; // to reduce the iterations for a large number.
}
System.out.println(temp);
cases--;
}
}
public static boolean isPrime(int num) {
if (num > 2 && num%2 == 0)
return false;
int top = (int)Math.sqrt(num) + 1;
for(int i = 3; i < top; i+=2)
if(num % i == 0)
return false;
return true;
}
}
이 코드는 숫자의 가장 큰 소수 요소를 계산합니다. 온라인 판사로부터 5/6 회 오류가 발생합니다. 나는 예외 나 오류를 알아낼 수 없다. 도와주세요 ...내 최대 소수 프로그램의 오류는 무엇입니까?
를 시도? – Carcigenicate
입력을 보았습니까? –
@Carcigenicate 입력 및 출력을 표시하지 않습니다. 그냥 찍은 시간 –