2014-09-15 1 views
0

숫자의 가장 큰 제수를 찾으려고 노력합니다. 예를 들어, 내 번호가 15 인 경우 35이 필요합니다. 번호가 18 인 경우 36이 필요합니다.숫자에서 가장 큰 제수 받기

나는 거의 내가 필요했던,하지만 난 아마 가장 쉬운 마지막 단계를 알아낼 질수는 ... 여기

내 코드입니다 :이 경우

int divisor; 
    int divisor1 = 0; 
    int num = gridArr.length; 

    for(divisor = (int)Math.sqrt(num); divisor>0; divisor--){ 
     if(num%divisor==0){ 
      divisor1 = num/divisor;  
     } 
    } 
    System.out.println(divisor+" "+divisor1); 

출력은 다음과 같습니다

:

0 15 

것은 내가 내부의 출력 인 경우 문의 System.out.print 이동하는 경우

그리고 나는 단지 3 5 만 필요합니다.

어디서 잘못 될지 모르겠다. 어떤 아이디어가 있습니까?

+0

"제수 제수"는 무엇을 의미합니까? 3은 어떻게 15의 제곱수입니까? –

+1

if 문 내에서 for 루프를 '중단하다' –

답변

0

좋아요, "가장 큰 제수"가 정확히 무엇인지 모르겠지만, 가능한 한 동등한 두 가지 요인으로 숫자를 계산한다는 것을 의미한다고 가정합니다. 코드의 작은 개정판 만 있으면됩니다. 한 요소 쌍을 찾으면 다른 요소를 찾지 말고 간단히 찾으십시오. 이를 수행하려면 루프에서 벗어나십시오.

for(divisor = (int)Math.sqrt(num); divisor>0; divisor--){ 
    if(num%divisor==0){ 
     divisor1 = num/divisor; 
     break; 
    } 
} 
+0

예! 그거였다. 감사. –

관련 문제