Tính chẵn/lẻ

View as PDF




Authors:
Problem types
Points: 800 (p) Time limit: 1.0s Memory limit: 256M Input: stdin Output: stdout

Viết chương trình nhập vào một số nguyên dương \(x\). In ra chữ YES nếu \(x\) là số chẵn, ngược lại in chữ NO.

Input

  • Một số nguyên dương \(x\) không vượt quá \(10^{15} = 1.000.000.000.000.000\).

Output

  • In ra chữ YES nếu \(x\) là số chẵn, ngược lại in chữ NO.

Example

Test 1

Input
1 
Output
NO

Test 2

Input
12 
Output
YES

Comments


  • -4
    khanhlamdz1    5:53 p.m. 16 aug, 2024

    bài gì khó thế ko bt


    • 1
      Pham_Vinh14    10:39 a.m. 15 aug, 2024

      x=int(input())
      if x%2==0:
      print('YES')
      else:
      print('NO')


      • -1
        DaoTrungKien2008    9:24 p.m. 8 jun, 2024

        bài này chỉ cần nhập vào 1 xâu rồi xét tính chẵn lẻ của ký tự cuối cùng trong xâu là được


        • 1
          pa_ldk    8:51 a.m. 12 may, 2024

          include<bits/stdc++.h>

          define ll long long

          using namespace std;
          ll x;
          int main()
          {
          cin>>x;
          if(x%2==0){
          cout<<"YES";
          }else{
          cout<<"NO";
          }
          return 0;
          }


          • 0
            PY2IHuynhHuuHoang    8:26 a.m. 14 sep, 2023

            x = int(input())
            if x%2 == 0:
            print('YES')
            else:
            print('NO')


            • 5
              SPyofgame    7:07 a.m. 19 jun, 2020 edit 6

              Spoiler Alert


              Approach 1

              • Xét tính chia hết cho 2

              \(n\) lẻ \(\Leftrightarrow n \equiv 1 \pmod{2} \Leftrightarrow n \mod{2} = 1\)

              \(n\) chẵn \(\Leftrightarrow n \equiv 0 \pmod{2} \Leftrightarrow n \mod{2} = 0\)


              Approach 2

              • Xét bit cuối của \(x\)

              \(n = \Sigma_{i=0}^{\lfloor log_2{n} \rfloor} (x_i \times 2^i)\) với \(x_i \in \{0, 1\}\)

              Khi \(\ last\_bit(n) = n\ \& \ 1 = 1\) có:

              \(n = 1 + \Sigma_{i\ =\ 1}^{\lfloor log_2{n} \rfloor} (x_i \times 2^i)\) (\(x_i \in \{0, 1\}\), \(x_0 = 1\))

              \(= 1 + 2 * \Sigma_{i\ =\ 0}^{\lfloor log_2{n} - 1 \rfloor} (x_i \times 2^i)\)

              \(= 1 + 2 * k\) với \((k \in ℕ)\) là số lẻ

              Khi \(\ last\_bit(n) = n\ \& \ 1 = 0\) có:

              \(n = 0 + \Sigma_{i\ =\ 1}^{\lfloor log_2{n} \rfloor} (x_i \times 2^i)\) (\(x_i \in \{0, 1\}\), \(x_0 = 0\))

              \(= 0 + 2 * \Sigma_{i\ =\ 0}^{\lfloor log_2{n} - 1 \rfloor} (x_i \times 2^i)\)

              \(= 0 + 2 * k\) với \((k \in ℕ)\) là số chẵn


              Approach 3

              • Xét chữ số cuối cùng của số biểu diễn dưới dạng xâu

              Với \(s\)\(n\) biểu diễn dưới dạng xâu

              \(n \equiv n \mod{10} \pmod{2}\)\(n \mod{10} = int(s.back() -\) '0' \()\) nên ta có

              Khi \(\ last\_digit(n) = n \mod 10 \in\) {$ 1, 3, 5, 7, 9$} thì \(n\) lẻ

              \(\Leftrightarrow s.back() \in\) {\('1', '3', '5', '7', '9'\)}

              Khi \(\ last\_digit(n) = n \mod 10 \in\) {$ 0, 2, 4, 6, 8$} thì \(n\) chẵn

              \(\Leftrightarrow s.back() \in\) {\('0', '2', '4', '6', '8'\)}

              6 replies