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

জাভাতে Nth Ugly Number খুঁজে বের করা

যে সংখ্যার প্রাইম ফ্যাক্টর শুধু ২, ৩ বা ৫ হয়, তাকে Ugly Number বলা হয়। কিছু Ugly Number: ১, ২, ৩, ৪, ৫, ৬, ৮, ১০, ১২, ১৫, ইত্যাদি।

আমাদের একটি সংখ্যা N দেওয়া আছে এবং কাজ হল Ugly Number সিকোয়েন্স থেকে Nth Ugly Number খুঁজে বের করা।

উদাহরণ

ইনপুট-১:

N = 5

আউটপুট:

5

ব্যাখ্যা: Ugly Number সিকোয়েন্স [1, 2, 3, 4, 5, 6, 8, 10, 12, 15]-এ ৫ম Ugly Number হল ৫।

ইনপুট-২:

N = 7

আউটপুট:

8

ব্যাখ্যা: Ugly Number সিকোয়েন্স [1, 2, 3, 4, 5, 6, 8, 10, 12, 15]-এ ৭ম Ugly Number হল ৮।

এই সমস্যা সমাধানের পদ্ধতি

এই সমস্যা সমাধানের একটি সহজ পদ্ধতি হল দেওয়া সংখ্যা ২, ৩ বা ৫ দিয়ে বিভাজ্য কিনা চেক করা এবং দেওয়া সংখ্যা পর্যন্ত সিকোয়েন্স ট্র্যাক রাখা। এখন যদি সংখ্যাটি Ugly Number-এর সব শর্ত পূরণ করে, তবে সেটি আউটপুট হিসেবে ফেরত দেয়া হয়।

  • Nth Ugly Number খুঁজে বের করার জন্য সংখ্যা N ইনপুট নেওয়া হয়।
  • isUgly(int n) বুলিয়ান ফাংশন একটি সংখ্যা 'n' ইনপুট নেয় এবং Ugly Number হলে True, অন্যথায় False ফেরত দেয়।
  • findNthUgly(int n) ইন্টিজার ফাংশন 'n' নম্বর ইনপুট নেয় এবং nth Ugly Number আউটপুট হিসেবে ফেরত দেয়।

উদাহরণ কোড

public class UglyN { 
    public static boolean isUglyNumber(int num) { 
        boolean x = true; 
        while (num != 1) { 
            if (num % 5 == 0) { 
                num /= 5; 
            } 
            else if (num % 3 == 0) { 
                num /= 3; 
            } 
            // চেক করা হচ্ছে সংখ্যা ২ দিয়ে বিভাজ্য কিনা 
            else if (num % 2 == 0) { 
                num /= 2; 
            } 
            else { 
                x = false; 
                break; 
            } 
        } 
        return x; 
    } 
    
    public static int nthUglyNumber(int n) { 
        int i = 1; 
        int count = 1; 
        while (n > count) { 
            i++; 
            if (isUglyNumber(i)) { 
                count++; 
            } 
        } 
        return i; 
    } 
    
    public static void main(String[] args) { 
        int number = 100; 
        int no = nthUglyNumber(number); 
        System.out.println("The Ugly no. at position " + number + " is " + no); 
    } 
}

আউটপুট

The Ugly no. at position 100 is 1536.
  1. জাভা প্রোগ্রাম: সমান্তরাল চতুর্ভুজের ক্ষেত্রফল বের করার পদ্ধতি

  2. জাভা প্রোগ্রাম: বৃত্তের পরিধি (Perimeter) বের করার পদ্ধতি

  3. জাভা প্রোগ্রাম: ট্রাপিজিয়াম (Trapezium) এর ক্ষেত্রফল বের করার পদ্ধতি

  4. জাভা প্রোগ্রাম: আয়তের পরিসীমা নির্ণয়