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

পাইথনে প্রাইম নাম্বার দিয়ে গুণ করে অ্যারে এলিমেন্ট সমান করা সম্ভব কিনা যাচাই করা

ধরি আমাদের দুটি অ্যারে আছে: nums এবং primes। আমাদের যাচাই করতে হবে nums-র সব এলিমেন্টকে primes অ্যারে থেকে এক বা একাধিক প্রাইম নাম্বার দিয়ে গুণ করে সমান করা সম্ভব কিনা।

উদাহরণস্বরূপ, nums = [25, 100] এবং primes = [2, 5] হলে আউটপুট হবে True, কারণ 25-কে ২ দিয়ে দুবার গুণ করলে ১০০ হয়।

সমাধানের ধাপসমূহ

  • lcm_arr := nums-র সব এলিমেন্টের LCM
  • প্রতিটি i এর জন্য:
    • val := lcm_arr / nums[i]
    • যদি primes খালি না হয় এবং val != 1, তবে primes-র সব প্রাইম দিয়ে val কে ভাগ করুন যতক্ষণ ভাগ যায়
    • যদি শেষে val != 1 হয়, তবে false রিটার্ন করুন
  • true রিটার্ন করুন

উদাহরণ

from math import gcd

def array_lcm(nums):
    ans = nums[0]
    for i in range(1, len(nums)):
        ans = (nums[i] * ans) / gcd(nums[i], ans)
    return ans

def solve(nums, primes):
    lcm_arr = array_lcm(nums)
    for i in range(len(nums)):
        val = lcm_arr / nums[i]
        for j in range(len(primes)) and val != 1:
            while (val % primes[j] == 0):
                val = val / primes[j]
        if (val != 1):
            return False
    return True

nums = [25, 100]
primes = [2, 5]
print(solve(nums, primes))

ইনপুট

[25, 100], [2, 5]

আউটপুট

True
  1. পাইথনে যাচাই করুন প্রাইম সংখ্যা দুটি প্রাইমের যোগফল হিসেবে প্রকাশ পায় কিনা

  2. পাইথনে দেওয়া অপারেশন দিয়ে সব উপাদান সমান করার ন্যূনতম অপারেশন সংখ্যা খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে লিস্টের স্ট্রিং এলিমেন্ট কনক্যাটেনেট করে দেওয়া স্ট্রিং তৈরি করা যায় কিনা যাচাই করুন

  4. পাইথনে অ্যারে উপাদানগুলো সমান করার জন্য ন্যূনতম মুভ (Minimum Moves to Equal Array Elements II)