ইভেন ও ওড নাম্বার কী?
ইভেন নাম্বার (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
অ্যালগরিদম
- প্রোগ্রাম শুরু করুন
- একটি ইন্টিজার ভেরিয়েবল ঘোষণা করুন: my_input
- ব্যবহারকারী থেকে সংখ্যা ইনপুট নিন
- মডুলাস অপারেটর (%) ব্যবহার করুন: my_input % 2
- যদি ফলাফল ০ হয় → ইভেন, অন্যথায় → ওড
- ফলাফল প্রদর্শন করুন
- প্রোগ্রাম শেষ করুন
উদাহরণ ১: ব্যবহারকারী ইনপুট নেওয়া
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-এ বাকেট ডিস্ট্রিবিউশন |
এজ কেস ও টেস্ট কেস
| ইনপুট | আউটপুট | ব্যাখ্যা |
|---|---|---|
| 0 | Even | 0 % 2 = 0 |
| 1 | Odd | 1 % 2 = 1 |
| -2 | Even | -2 % 2 = 0 |
| -3 | Odd | -3 % 2 = -1 (≠ 0) |
| Integer.MAX_VALUE | Odd | 2147483647 % 2 = 1 |
সাধারণ ভুল
- my_input % 2 == 1 লিখলে 네가েটিভ ওড সংখ্যা (যেমন -3) ডিটেক্ট হবে না কারণ -3 % 2 = -1
- সঠিক: my_input % 2 != 0 বা my_input % 2 == 1 || my_input % 2 == -1
- বিটওয়াইজ (n & 1) সবচেয়ে সুরক্ষিত এবং দ্রুত