새소식

Math

23학년도 6월 모의평가 수학 21번 Python

  • -

2022.06.09. 시행된 2023학년도 대학수학능력시험 6월 모의평가 수학 21번 문제를 프로그래밍으로 해결하는 글이다.

자연수 n에 대하여 4log64(34n+16) 의 값이 정수가 되도록 하는 1000 이하의 모든 n의 값의 합을 구하시오.

로그 밑인 64는 26 이므로, 식을 다음과 같이 정리할 수 있다:

23log2(34n+16)

이 값이 정수가 되려면 log2(34n+16) 의 값이 3 또는 -3의 배수가 되어야 한다. 먼저 n이 자연수일때 34n+1623, 26, 29 ... 가 될 수 없다. 따라서 23, 26, 29 ... 가 되는 경우를 생각해보자.

34n+16=18=324,4n=8,n=2

34n+16=164=3192,4n=176,n=44

34n+16=1512=31536,4n=1520,n=380

34n+16=14096=312288,4n=12272,n=3068

...

log2(34n+16) 이 -12가 되면 n의 값은 1000을 초과한다. 따라서 1000 이하의 자연수 n의 값의 합은 2+44+380=426이다.

import math res = 0 for n in range(1, 1001): val = 2/3*math.log2(3/(4*n+16)) if val == int(val): res += n print(res)

어떤 수 x가 정수인지 판별하려면 xx를 정수형 타입으로 바꾼 값이 일치하면 x는 정수라고 말할 수 있다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.