https://arca.live/b/math/38156053


얼마 전에 올린 거
181/819 같은거 쳐내려고 코드 좀 더 끄적여보고 있는데 해결이 뭐같이 안되는거임


from math import gcd, trunc

from fractions import Fraction

from time import sleep


foo = 0


for a in range(1, 10) :

    for b in range(1, 10) :

        y = Fraction(a*b / (10*a - b)).denominator

        if y % 2 != 0 and y % 5 != 0 :

            for n in range(1, 20) :

                if 10 * a != b : x = ((10**n-1) * a*b) / (10*a - b)

                if x == trunc(x) and a*b <= 10*a - b :

                    print(str(a) + str(format(x, '.0f')) + '/' + str(format(x, '.0f')) + str(b))

                    foo += 1

                    break

print(foo)


일단 이건 소스코드. 아까 그 분이 알려주신 대로 몇 가지 예외사항을 고려해서 조건 몇 개 단 게 다임. 설명에 필요하진 않을 것 같지만 궁금한 사람은 보러 가라고 링크 남겨둠.


https://arca.live/b/math/38187931


일단 이론 같은거 다 필요없고 y값이 문제임.

보다시피 y값은 a*b/(10*a-b)의 기약분수 분모 부분인데

a랑 b 모두 구간이 1부터 9까지 안에서 논단 말이야


근데 이 부분만 추가하니까 계속 멀쩡한 놈들까지 터져서

뭔가 있는가보다 해서 y값을 호출했지

그런데 ㅅㅂ?

이게 저 식에 저 숫자에서 나올 수 있는 수임?


내가 뭘 잘못 건드린 건 아닌 것 같고 오버플로인가 싶기도 하고

솔직히 오버플로 한도같은거 안외우고 다녀서 그냥 맞겠지 싶은데

결론적으로 이거 해결 어떻게 함?