주석 부분은 이곳에서 실행할 수 없는 부분입니다.
페르마의 소정리 증명을 위해 코딩을 했습니다.
제곱수+1=n, n+1=세제곱수 이것을 충족하는 n은 26밖에 없다는 것을 증명합니다.
코딩에서는 출력 초과가 나옵니다.
그래서 Code::Blocks에서 해봤는데 이상한 2천 몇인가가 갑자기 Wow!를 출력시키더라고요.
계산해보니 그 수는 충족이 안되는데 말이죠.
왜 그럴까요?
실수 오차 때문에 그런 게 아닐까요. 실수에서 == 연산은 되도록 안 쓰는 게 좋다고 알고있습니다. a랑 b랑 같은지 알고싶으면 |a-b|<=10^(-9) 이런 식으로 하는 게 좋아요.
@hongjun7 전 실수형 변수에 담겨 있는 수가 정수인지 판별하는 if문을 만드려고 했는데, 나머지 연산자에서 문제가 생기네요.
오류가 아닙니다.
실수 자료형은 근사값을 저장하기 때문입니다.
@hongjun7 이 말한 대로 두 실수 a와 b가 같은지 알려면 아래 소스와 같이 if문을 작성해야 합니다.
eps값은 적절히 정하면 되지만, 보통 1e-9를 사용합니다.
댓글을 작성하려면 로그인해야 합니다.
79brue 9년 전
주석 부분은 이곳에서 실행할 수 없는 부분입니다.
페르마의 소정리 증명을 위해 코딩을 했습니다.
제곱수+1=n, n+1=세제곱수 이것을 충족하는 n은 26밖에 없다는 것을 증명합니다.
코딩에서는 출력 초과가 나옵니다.
그래서 Code::Blocks에서 해봤는데 이상한 2천 몇인가가 갑자기 Wow!를 출력시키더라고요.
계산해보니 그 수는 충족이 안되는데 말이죠.
왜 그럴까요?