

4,744,47,74,77444,447,474,477,744,747,774,7774444,4447,4474,4477,4744,4747,4774,4777,7444,7447,7474,7477,7744,7747,7774,7777n인 숫자는 개 있습니다.한 자리 수입니다.두 자리 수입니다.세 자리 수입니다.네 자리 수입니다.N자리 수입니다.
4자리 숫자 16개는 다음의 규칙을 가집니다 -> 자리 숫자는 번마다 바뀝니다. (t는 4자리 숫자 내에서의 순서)
숫자를 2^(t-1)로 나눈 몫을 2로 나눈 나머지에 따라 값이 바뀝니다.k번째 수 = (2+4+8+...+n)+ak = int(input())
for n in range(0,100): #2^100은 10^9를 덮을 수 있는 충분히 큰 숫자입니다.
# print(2**(n+1)-2,2**(n+2)-2)
if 2**(n+1)-2 <= k-1 < 2**(n+2)-2:
break
t = 2**(n+1)-2 #k는 n자리 숫자이며
a = k-t #n자리 숫자 중 a번째에 등장합니다
reversed_answer = '' # 일의자리부터 계산하기 때문에 정답과는 반대로 값이 들어옵니다
#`숫자`를 `2^(t-1)`로 나눈 `몫`을 `2로 나눈` 나머지에 따라 값이 바뀌는 걸 함수로 만듭니다
def func(one,two):
temp = (one-1)//2**(two)
if temp%2 == 0:
return '4'
else:
return '7'
for v in range(n+1):
reversed_answer += func(a,v)
answer = reversed_answer[::-1]
print(answer)