2022.06.09. 시행된 2023학년도 대학수학능력시험 6월 모의평가 수학 21번 문제를 프로그래밍으로 해결하는 글이다.
문제
자연수 n에 대하여 4log64(34n+16) 의 값이 정수가 되도록 하는 1000 이하의 모든 n의 값의 합을 구하시오.
풀이
로그 밑인 64는 26 이므로, 식을 다음과 같이 정리할 수 있다:
23log2(34n+16)
이 값이 정수가 되려면 log2(34n+16) 의 값이 3 또는 -3의 배수가 되어야 한다. 먼저 n이 자연수일때 34n+16 은 23, 26, 29 ... 가 될 수 없다. 따라서 2−3, 2−6, 2−9 ... 가 되는 경우를 생각해보자.
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이다.
코드
어떤 수 x가 정수인지 판별하려면 x와 x를 정수형 타입으로 바꾼 값이 일치하면 x는 정수라고 말할 수 있다.