ধরুন আমাদের দুটি অ্যারে আছে, একটি হল সংখ্যা এবং আরেকটি হল প্রাইম। প্রাইম অ্যারে থেকে এক বা একাধিক মৌলিক সংখ্যাকে গুণ করে সংখ্যার সমস্ত উপাদান সমান করা সম্ভব কিনা তা আমাদের পরীক্ষা করতে হবে।
সুতরাং, যদি ইনপুটটি nums =[25, 100] primes =[2, 5] এর মত হয়, তাহলে আউটপুট হবে True কারণ আমরা 25 কে 2 দিয়ে গুন করতে পারি 100 পেতে তাহলে সব উপাদান একই।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- lcm_arr :=সংখ্যায় সমস্ত উপাদানের LCM
- আমি 0 থেকে সংখ্যার আকার - 1 এর রেঞ্জের জন্য, কর
- val :=lcm_arr/nums[i]
- যদি প্রাইমগুলির আকার 0 না হয় এবং val 1 না হয়, তাহলে
- যদিও ভ্যাল মোড প্রাইম[0] 0 হয়, ডু
- val :=val/primes[j]
- যদিও ভ্যাল মোড প্রাইম[0] 0 হয়, ডু
- যদি val 1 এর মত না হয়, তাহলে
- মিথ্যে ফেরত দিন
- সত্য ফেরান
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
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