-
[AtCoder - ARC032A] ホリドッグ문제 풀이/AtCoder 2024. 1. 10. 21:25
난이도: 178
번역
더보기Holidog는 굉장히 똑똑한 개입니다. 얼마나 똑똑하냐면, 덧셈과 소수 판별을 할 수 있습니다! Holidog에게 어떠한 양의 정수를 주고 이 수가 소수인지 묻는다면, 소수라면 WANWAN이라고 짖고, 아니라면 BOWWOW라고 짖습니다.
당신은, 이 Holidog에게 \( 1 + 2 + 3 + \ldots + N \)이 소수인지 묻기로 했습니다. 이 때 Holidog가 어떻게 짖을 지 출력하세요.
소수란, \( 2 \) 이상의 양의 정수 중 \( 1 \)과 자기 자신을 제외한 다른 양의 정수로 나누어지지 않는 수를 의미합니다. 예로, \( 2 \), \( 3 \), \( 17 \)은 소수이지만, \( 1 \), \( 10 \)은 소수입니다.
태그
더보기- Mathematics
- Number Theory
- Primality Test
- Number Theory
1. 간단한 풀이
더보기\( N \le 1\,000 \)이기 때문에, 그냥 \( 1 + 2 + 3 + \ldots + N \)을 반복문으로 계산한 뒤 이게 소수인지 반복문으로 계산하는 풀이도 충분히 통과합니다.
2. 하지만 재밌는 짓을 해본다면?
더보기[1]만 알아도 이 문제를 푸는 데에는 지장이 없습니다. 하지만 조금 재밌는 일을 해봅시다.
\( 1 + 2 + \ldots + N = \frac{N(N+1)}{2} \)입니다. 이 식을 조금 생각해본다면, \( N \ge 3 \)이라면 분자에 \( 4 \) 이상의 짝수가 항상 들어가게 되므로, 항상 합성수가 됩니다.
남은 경우는 \( N = 1 \)과 \( N = 2 \)로, 각각 합이 \( 1 \)과 \( 3 \)이기 때문에 각각 합성수, 소수가 됩니다.
따라서, \( N = 2 \)를 제외하고는 모두 합성수이므로 BOWWOW를, \( N = 2 \)에는 WANWAN을 출력하면 됩니다.
코드
'문제 풀이 > AtCoder' 카테고리의 다른 글
[AtCoder - ABC029 D] 1 (0) 2023.06.06 [AtCoder - ABC195 E] Lucky 7 Battle (0) 2023.03.09 [AtCoder - AGC034 B] ABC (0) 2023.03.09 [AtCoder - ARC121 A] 2nd Greatest Distance (0) 2023.03.09 [AtCoder - ABC104 D] We Love ABC (0) 2023.03.08 - Mathematics