ABOUT ME

Today
Yesterday
Total
  • [AtCoder - ARC032A] ホリドッグ
    문제 풀이/AtCoder 2024. 1. 10. 21:25

    난이도: 178

     

    번역

    더보기

    Holidog는 굉장히 똑똑한 개입니다. 얼마나 똑똑하냐면, 덧셈과 소수 판별을 할 수 있습니다! Holidog에게 어떠한 양의 정수를 주고 이 수가 소수인지 묻는다면, 소수라면 WANWAN이라고 짖고, 아니라면 BOWWOW라고 짖습니다.

     

    당신은, 이 Holidog에게 1+2+3++N이 소수인지 묻기로 했습니다. 이 때 Holidog가 어떻게 짖을 지 출력하세요.

     

    소수란, 2 이상의 양의 정수 중 1과 자기 자신을 제외한 다른 양의 정수로 나누어지지 않는 수를 의미합니다. 예로, 2, 3, 17은 소수이지만, 1, 10은 소수입니다.

    태그

    더보기
    • Mathematics
      • Number Theory
        • Primality Test

    1. 간단한 풀이

    더보기

    N1000이기 때문에, 그냥 1+2+3++N을 반복문으로 계산한 뒤 이게 소수인지 반복문으로 계산하는 풀이도 충분히 통과합니다.

    2. 하지만 재밌는 짓을 해본다면?

    더보기

    [1]만 알아도 이 문제를 푸는 데에는 지장이 없습니다. 하지만 조금 재밌는 일을 해봅시다.

     

    1+2++N=N(N+1)2입니다. 이 식을 조금 생각해본다면, N3이라면 분자에 4 이상의 짝수가 항상 들어가게 되므로, 항상 합성수가 됩니다.

    남은 경우는 N=1N=2로, 각각 합이 13이기 때문에 각각 합성수, 소수가 됩니다.

     

    따라서, N=2를 제외하고는 모두 합성수이므로 BOWWOW를, N=2에는 WANWAN을 출력하면 됩니다.

    코드

    더보기

    예전 AtCoder 문제는 줄 끝에 NewLine Character가 없으면 WA 처리를 받으니 주의하세요.

     

    1
    2
    3
    4
    5
    void Main(){
        int n; cin >> n;
        if (n == 2){ cout << "WANWAN" << endl; }
        elsecout << "BOWWOW" << endl; }
    }
    cs

    '문제 풀이 > 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
Designed by Tistory.