X = int(input())
#구간 구하기
increase=[]
def seq4(n):
ans = 1
diff = 2
cnt = 1
while True:
if n == cnt:
break
increase.append(ans)
ans += diff
diff += 1
cnt += 1
seq4(X)
up = 1
down = 1
good_num = 1
diff = 1
for i in range(len(increase)):
if X>increase[i] and X<=increase[i+1]:
good_num = increase[i+1] - increase[i]
diff = X-increase[i]-1
if good_num % 2 == 0:
down = good_num
elif good_num % 2 == 1:
up = good_num
if down == 1:
down += diff
up -= diff
elif up == 1:
down -= diff
up += diff
print('{}/{}'.format(up, down))
계차수열을 구하는 함수를 만들고
분자를 up, 분모를 down으로 두었다
X의 구간을 찾아내서 구간 맨 앞의 숫자랑의 차이 -1 을 가지고 분자와 분모에서 짝수인지 홀수인지에 따라 더하고 빼서 찾도록 했다
이 방법도 예시는 잘 통과했지만 메모리 이슈로 실패...
N = int(input())
A = 0
B = 0
while B < N:
A += 1
B += A
if A % 2 == 0:
bm = 1 + (B-N)
bj = A - (B-N)
else :
bm = A - (B-N)
bj = 1 + (B-N)
print('{0}/{1}'.format(bj, bm))
이 해결법은 과거의 내가 했던건데 구간을 나눠보면 구간의 첫 분수에 짝수가 있고 없고에 따라 자연수로 시작하는지 분수로 시작하는지가 달라지기 때문에 짝수여부로 분기해서 분자와 분모값을 계산해서 print하도록 되어있다