시간 초과야 최대 크기 백만이니까 100만*100만번을 동작하는 거니까 오래걸리죠. 필요없는 계산은 빼도록 합시다. 예를 들어 i*j==n이 되고 난 이후의 j의 값으로는 i*j의 값은 n을 넘어가니까 break;를 걸어주는 식으로 말이죠. 그런데 실패가 뜨는건 저도 이해가 안가는 군요. 논리적으로 봤을때 이상이 없어 보이는데 말이죠. 그런데 첫번째 for문에 n을 i의 값으로 나눴을때, 나머지가 0이 아닌 i의값은 넘어가는 식을 추가했더니 통과가 되는걸 보면 n을 i로 나눴을때 나머지가 0이 아닌 i의 값일 때도 answer의 값을 올렸다는 건데.. 대체 어떻게 그런 경우가 나올 수 있는 건지 의문이군요...
최대한 짧게 하려다 보니 약수 계산으로 풀었습니다. 그랬더니 승인이 나왔습니다. 의견 주셔서 감사합니다.