Saturday, September 6, 2025

How to check even or odd number without divide by 2

 How to check even or odd number without divide by 2. :-
-------------------------------------------------------

here is a program that checks even/odd number without divide by two. Here is theory

let start with number, consider number table as :-

decimal numbers     it's binary  last digit ( LSB )
------------------   ---------------    ------

1  -> odd                0001                1

2  -> even               0010               0

3  -> odd                0011                1

4  -> even               0100               0

5  -> odd                0101                1

6  -> even              0110                0

7  -> odd                0111                1

8  -> even              1000                 0

9  -> odd                1001                1

10 -> even              1010               0
.
.
.
.

Now it is clear that in number table after every odd ( started from 1) there is an even number, and after every even there is odd number. And in ther binary form, LSB of odd is " 1 ", and LSB of even is " 0 ".

So by using bitwise "and" operation ( & ) with a char having LSB " 1 ", i.e. 

0x01 ( 0000 0001 ) we can chack number's LSB is " 1 "  or " 0 ". and from that we can determine even or odd. Here is a program :-

#include <iostream>

using namespace std;

bool evenodd(int num)
{
    char *pch;

    pch = (char*)(&num);

    int i = (*pch) & (0x01);

    if(i == 0)
    {
        return true;
    }
    else if(i == 1)
    {
        return false;
    }
}

int main()
{
    int i;

    cout << "Enter integer to check even/odd : ";
    cin  >> i;

    bool tf = evenodd(i);

    if(tf == true)
    {
        cout << "even number" << endl;
    }
    else
    {
        cout << "odd number" << endl;
    }

    return 0;
}

OUTPUT of program :-
--------------------

[rahul@kaljayi Debug]$ ./prime-num
Enter integer to check even/odd : 1
odd number
[rahul@kaljayi Debug]$ ./prime-num
Enter integer to check even/odd : 3
odd number
[rahul@kaljayi Debug]$ ./prime-num
Enter integer to check even/odd : 5
odd number
[rahul@kaljayi Debug]$ ./prime-num
Enter integer to check even/odd : 4
even number
[rahul@kaljayi Debug]$ ./prime-num
Enter integer to check even/odd : 121212
even number
[rahul@kaljayi Debug]$ ./prime-num
Enter integer to check even/odd : 1212121
odd number
[rahul@kaljayi Debug]$ ./prime-num
Enter integer to check even/odd : 12121223
odd number
[rahul@kaljayi Debug]$

No comments:

Post a Comment