ধরুন আমাদের একটি অ্যারের সংখ্যা আছে, আমাদের পরীক্ষা করতে হবে যে এই অ্যারেটিতে কিছু পূর্ণসংখ্যার সমস্ত ভাজক আছে কি না৷
সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[1, 2, 3, 4, 6, 8, 12, 24], তাহলে আউটপুট হবে True কারণ এগুলো হল 24 এর ভাজক।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- সর্বোচ্চ :=সংখ্যার সর্বোচ্চ
- temp :=একটি নতুন তালিকা
- আমি রেঞ্জ 1 থেকে সর্বোচ্চ এর বর্গমূলের জন্য, করুন
- যদি সর্বোচ্চ i দ্বারা বিভাজ্য হয়, তাহলে
- টেম্পের শেষে i ঢোকান
- যদি (সর্বোচ্চ / i) এর ভাগফল i এর সমান না হয়, তাহলে
- টেম্পের শেষে (সর্বোচ্চ / i) এর ভাগফল যোগ করুন
- যদি তাপমাত্রার আকার সংখ্যার আকারের মতো না হয়, তাহলে
- মিথ্যে ফেরত দিন
- তালিকা সংখ্যা এবং টেম্প বাছাই করুন
- আমি 0 থেকে সংখ্যার আকার - 1 এর রেঞ্জের জন্য, কর
- যদি temp[i] nums[i] এর মত না হয়, তাহলে
- মিথ্যে ফেরত দিন
- যদি temp[i] nums[i] এর মত না হয়, তাহলে
- যদি সর্বোচ্চ i দ্বারা বিভাজ্য হয়, তাহলে
- সত্য ফেরান
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ কোড
from math import sqrt def solve(nums): maximum = max(nums) temp = [] for i in range(1,int(sqrt(maximum))+1): if maximum % i == 0: temp.append(i) if (maximum // i != i): temp.append(maximum // i) if len(temp) != len(nums): return False nums.sort() temp.sort() for i in range(len(nums)): if temp[i] != nums[i]: return False return True nums = [1, 2, 3, 4, 6, 8, 12, 24] print(solve(nums))
ইনপুট
[1, 2, 3, 4, 6, 8, 12, 24]
আউটপুট
True