Tính chẵn/lẻ

Xem PDF




Tác giả:
Dạng bài
Điểm: 800 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

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

Bình luận

  • ducbao_ 9:57 p.m. 10 Tháng 12, 2024

    code cho ai lười :)

    #include <iostream>
    
    using namespace std;
    
    int main() {
        int t;
        cin >> t;
        if (t % 2 == 0) {
            cout << "YES" << endl;
        }
        else {
            cout << "NO" << endl;
        }
    }
    

    • nhatnam3004 4:41 p.m. 12 Tháng 10, 2024

      ảo thật đấy 800 điểm mà dễ

      • khanhlamdz1 5:53 p.m. 16 Tháng 8, 2024

        bài gì khó thế ko bt

        • Pham_Vinh14 10:39 a.m. 15 Tháng 8, 2024

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

          • DaoTrungKien2008 9:24 p.m. 8 Tháng 6, 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

            • pa_ldk 8:51 a.m. 12 Tháng 5, 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;
              }

              • PY2IHuynhHuuHoang 8:26 a.m. 14 Tháng 9, 2023

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

                • SPyofgame 7:07 a.m. 19 Tháng 6, 2020 chỉnh sửa 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'\)}