# 친절한 수론 길라잡이, 12쪽 연습문제 1.1
# 삼각수와 사각수의 공통 숫자 찾기
#
# t: 삼각수 s: 사각수
# t = n*(n+1) / 2
# s = m^2
print("삼각수와 사각수의 공통 숫자")
n, m = 2, 2 # 2부터 시작. 1도 공통수이지만 계산의 편의성을 위해 일단 제외
while True:
t = n * (n + 1) / 2
s = m ** 2
while s > t:
n += 1
t = n * (n + 1) / 2
while t > s:
m += 1
s = m ** 2
if t == s:
print(f"{s} ", end="")
print(f"({n}, {m})")
n += 1
m += 1
# 출력 결과:
#
# 삼각수와 사각수의 공통 숫자
# 36 (8, 6)
# 1225 (49, 35)
# 41616 (288, 204)
# 1413721 (1681, 1189)
# 48024900 (9800, 6930)
# 1631432881 (57121, 40391)
# 55420693056 (332928, 235416)
# 1882672131025 (1940449, 1372105)
# 63955431761796 (11309768, 7997214)
# 2172602007770041 (65918161, 46611179)
# 31843510970040004 (252362877, 178447502)
# 73804512832419600 (384199200, 271669860)
# 209868964743659776 (647871846, 458114576)
# 395093788255338496 (888924955, 628564864)
# (10분 정도 실행한 결과. 더 있을 수도 있음)
카테고리 없음