c라는 정수가 주어졌을 때
a제곱 * b제곱 = c제곱
인 a, b를 찾는 문제였다.
c제곱 - a제곱 = b제곱 이라는 것을 이용하여
a, b for문을 두 개 이용하는 것이 아니라 a에 대한 for문 한 개만 이용하여 푸는 방법인데
c제곱 - a제곱의 sqrt(루트)가 자연수이면 그 것은 성립된다는 것으로 생각하면 된다.
문제는 소수점에 대한 double형인지 소수점 없이 나누어 떨어지는지에 대해서 알 필요가 있다고 생각했다.
소수판별은 c제곱 - a제곱인 b제곱인 b를
다시 a제곱 * b제곱 == c제곱 인지 검사해줬다.
이렇게 되면 b가 소수점이 나오게 되면 다른 값이 나올 테니까...
테스트케이스 7개까지 통과 했다.
이 테스트케이스에서 막혔다 ㅡㅡ ㅜ
118276
다시 풀어 봐야 겠다.
--------------------------------
풀렸다
실수를 했다. a에 대한 for문을 돌리면서 습관적으로 int형으로 선언한 뒤에 돌렸다.
생각해보니까 long long으로 선언해서 돌려야 한다.
for(long long a = 1; a < c; a++)
이런식으로 돌려되는 것을 long long이 아닌 int로 선언해서 된 오류였다.