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

অগলি নাম্বার (Ugly Numbers)

অগলি নাম্বার হল সেই সংখ্যাগুলো যাদের প্রাইম ফ্যাক্টর শুধু ২, ৩ বা ৫। ১ থেকে ১৫ পর্যন্ত ১১টি অগলি নাম্বার আছে: ১, ২, ৩, ৪, ৫, ৬, ৮, ৯, ১০, ১২, ১৫। ৭, ১১, ১৩ অগলি নয় কারণ সেগুলো প্রাইম। ১৪ অগলি নয় কারণ এর প্রাইম ফ্যাক্টরে ৭ থাকে।

এই প্রোগ্রামে আমরা nth অগলি নাম্বার খুঁজে বের করার চেষ্টা করব।

ইনপুট এবং আউটপুট

ইনপুট: পদ সংখ্যা নিন। ধরা যাক ১০
আউটপুট: ১০ম অগলি নাম্বার হল ১২

অ্যালগরিদম

getUglyNumbers(n)

ইনপুট: পদ সংখ্যা।
আউটপুট: nth অগলি নাম্বার খুঁজে বের করা।

শুরু
  n আকারের uglyNum অ্যারে সংজ্ঞায়িত করুন
  i2 := 0, i3 := 0, i5 := 0
  next2mul := 2, next3mul := 3, next5Mul := 5
  next := 1
  ugluNum[0] := 1
  i := 1 থেকে n পর্যন্ত, করুন
    next := next2Mul, next3Mul এবং next5Mul এর মধ্যে ন্যূনতম
    uglyNum[i] := next
    যদি next = next2Mul হয়, তবে
      i2 := i2 + 1
      next2mul := uglyNum[i2] * 2
    যদি next = next3Mul হয়, তবে
      i3 := i3 + 1
      next3mul := uglyNum[i3] * 3
    যদি next = next5Mul হয়, তবে
      i5 := i5 + 1
      next5mul := uglyNum[i5] * 5
  끝난
  next ফেরত দিন
শেষ

উদাহরণ (C++)

#include <iostream>
using namespace std;

int min(int x, int y, int z) {
  if(x < y) {
    if(x < z) return x;
    else return z;
  } else {
    if(y < z) return y;
    else return z;
  }
}

int getUglyNum(int n) {
  int uglyNum[n];
  int i2 = 0, i3 = 0, i5 = 0;
  int next2mul = 2;
  int next3mul = 3;
  int next5mul = 5;
  int next = 1;
  uglyNum[0] = 1;
  for (int i=1; i> n;
  cout << n << "th Ugly number is: " << getUglyNum(n) << endl;
}

আউটপুট

Enter term: 10
10th Ugly number is: 12
  1. জাভাতে সংখ্যা অ্যারের LCM (লgemeस्ट কমন মাল্টিপল) বের করা

  2. জাভাস্ক্রিপ্ট Numbers উদাহরণ

  3. পাইথনে ম্যাট্রিক্সে সারির ও কলামের সর্বোচ্চ মান যাচাই করা

  4. পাইথনে কমপ্লেক্স নম্বর