কম্পিউটার টিউটোরিয়াল

জাভা প্রোগ্রাম: ইভেন (Even) বা ওড (Odd) নাম্বার চেক করা

ইভেন ও ওড নাম্বার কী?

ইভেন নাম্বার (Even Number): ২ দিয়ে বিভাজ্য সংখ্যা (বاقী ০)। উদাহরণ: ..., -4, -2, 0, 2, 4, 6, 8, 10, ...
ওড নাম্বার (Odd Number): ২ দিয়ে বিভাজ্য নয় (বاقী ১ বা -১)। উদাহরণ: ..., -3, -1, 1, 3, 5, 7, 9, ...

ইনপুট ও আউটপুট উদাহরণ

ইনপুট:

Enter the number : 45

আউটপুট:

The number 45 is an odd number

অ্যালগরিদম

  1. প্রোগ্রাম শুরু করুন
  2. একটি ইন্টিজার ভেরিয়েবল ঘোষণা করুন: my_input
  3. ব্যবহারকারী থেকে সংখ্যা ইনপুট নিন
  4. মডুলাস অপারেটর (%) ব্যবহার করুন: my_input % 2
  5. যদি ফলাফল ০ হয় → ইভেন, অন্যথায় → ওড
  6. ফলাফল প্রদর্শন করুন
  7. প্রোগ্রাম শেষ করুন

উদাহরণ ১: ব্যবহারকারী ইনপুট নেওয়া

import java.util.Scanner;

public class EvenOdd {
    public static void main(String[] args) {
        int my_input;
        System.out.println("Required packages have been imported");
        Scanner my_scanner = new Scanner(System.in);
        System.out.println("A reader object has been defined");
        System.out.print("Enter the number : ");
        my_input = my_scanner.nextInt();
        
        if (my_input % 2 == 0)
            System.out.println("The number " + my_input + " is an even number");
        else
            System.out.println("The number " + my_input + " is an odd number");
    }
}

উদাহরণ ২: পূর্বনির্ধারিত মান ব্যবহার

public class EvenOdd {
    public static void main(String[] args) {
        int my_input = 45;
        System.out.println("The number is defined as " + my_input);
        
        if (my_input % 2 == 0)
            System.out.println("The number " + my_input + " is an even number");
        else
            System.out.println("The number " + my_input + " is an odd number");
    }
}

কোড ব্যাখ্যা

  • মডুলাস অপারেটর (%): ভাগশেষ বের করে। n % 2 = 0 হলে জোড়, 1 বা -1 হলে বিজোড়
  • নেগেটিভ সংখ্যা হ্যান্ডলিং: জাভাতে -3 % 2 = -1 (নেগেটিভ), তবুও != 0 চেক করলেই ওড ডিটেক্ট হয়
  • বিটওয়াইজ অ্যাল্টারনেটিভ: (my_input & 1) == 0 → ইভেন, (my_input & 1) == 1 → ওড (ফাস্টার)

বিটওয়াইজ অপারেটর ব্যবহার করে (দ্রুততম পদ্ধতি)

if ((my_input & 1) == 0)
    System.out.println("Even");
else
    System.out.println("Odd");

কারণ: বাইনറിയের লাস্ট বিট ০ হলে জোড়, ১ হলে বিজোড়। AND অপারেশন দিয়ে লাস্ট বিট চেক করা মডুলাসের চেয়ে দ্রুত।

টার্নারি অপারেটর ব্যবহার করে

String result = (my_input % 2 == 0) ? "even" : "odd";
System.out.println("The number " + my_input + " is an " + result + " number");

জাভা ৮+ Stream API (র‍্যান্ডম সংখ্যা চেক)

IntStream.range(1, 101)
    .forEach(n -> System.out.println(n + " is " + (n % 2 == 0 ? "even" : "odd")));

ব্যবহারিক প্রয়োগ

ক্ষেত্রপ্রয়োগ
অ্যালগরিদমএরি স্ট্রেইনার, অপ্টিমাইজেশন
গ্রাফিক্সপিক্সেল রো/কলাম অ্যাল্টারনেট করা
গেম ডেভটার্ন-ভিত্তিক গেমে প্লেয়ার টার্ন
ক্রিপ্টোগ্রাফিপ্যারিটি চেক, Hamming code
ডেটা স্ট্রাকচারHashMap-এ বাকেট ডিস্ট্রিবিউশন

এজ কেস ও টেস্ট কেস

ইনপুটআউটপুটব্যাখ্যা
0Even0 % 2 = 0
1Odd1 % 2 = 1
-2Even-2 % 2 = 0
-3Odd-3 % 2 = -1 (≠ 0)
Integer.MAX_VALUEOdd2147483647 % 2 = 1

সাধারণ ভুল

  • my_input % 2 == 1 লিখলে 네가েটিভ ওড সংখ্যা (যেমন -3) ডিটেক্ট হবে না কারণ -3 % 2 = -1
  • সঠিক: my_input % 2 != 0 বা my_input % 2 == 1 || my_input % 2 == -1
  • বিটওয়াইজ (n & 1) সবচেয়ে সুরক্ষিত এবং দ্রুত
  1. জাভা প্রোগ্রাম: প্যালিনড্রোম চেক করা

  2. পাইথন প্রোগ্রাম: রিকার্শন ব্যবহার করে সংখ্যা ইভেন নাকি Odd চেক করা

  3. পাইথনে ফ্লোটিং পয়েন্ট সংখ্যা জোড় নাকি বিজোড় যাচাই করা

  4. পাইথনে সংখ্যা পজিটিভ, নেগেটিভ, বিজোড়, জোড় বা শূন্য কিনা যাচাই করার প্রোগ্রাম