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

পাইথন প্রোগ্রাম: একটি সংখ্যার অনন্য প্রাইম ফ্যাক্টরের গুণফল বের করা


এই নিবন্ধে আমরা নিচের সমস্যা বিবরণের সমাধান নিয়ে আলোচনা করব:

সমস্যা বিবরণ - একটি সংখ্যা n দেওয়া থাকলে, তার সব অনন্য প্রাইম ফ্যাক্টরের গুণফল বের করে রিটার্ন করতে হবে।

উদাহরণস্বরূপ,

Input: num = 11
Output: Product is 11
Explanation: এখানে, ইনপুট সংখ্যা 11 যার শুধু ১টি প্রাইম ফ্যাক্টর এবং সেটি 11। তাই তাদের গুণফল 11।

অプローチ ১

i = 2 থেকে n+1 পর্যন্ত একটি for লুপ ব্যবহার করে চেক করুন i n-এর ফ্যাক্টর কিনা এবং তারপর i প্রাইম নম্বর কিনা, যদি হয় তবে প্রোডাক্ট ভেরিয়েবলে গুণফল স্টোর করুন এবং এই প্রক্রিয়া i = n হওয়া পর্যন্ত চালিয়ে যান।

উদাহরণ

def productPrimeFactors(n):
    product = 1
    for i in range(2, n+1):
        if (n % i == 0):
            isPrime = 1
            for j in range(2, int(i/2 + 1)):
                if (i % j == 0):
                    isPrime = 0
                    break
            if (isPrime):
                product = product * i
    return product

# মেইন
n = 18
print(productPrimeFactors(n))

আউটপুট

6

সব ভেরিয়েবলের স্কোপ নিচের চিত্রে দেখানো হয়েছে:

পাইথন প্রোগ্রাম: একটি সংখ্যার অনন্য প্রাইম ফ্যাক্টরের গুণফল বের করা

অপ্রোচ ২

  • যতক্ষণ n ২ দিয়ে বিভাজ্য (সম), ২ প্রিন্ট করুন এবং n কে ২ দিয়ে ভাগ করুন।

  • ধাপ ১ পরে, n অবশ্যই বিজোড় হবে। এখন i = 3 থেকে n-এর বর্গমূল পর্যন্ত একটি for লুপ শুরু করুন। যতক্ষণ i n কে ভাগ করে, i প্রিন্ট করুন এবং n কে i দিয়ে ভাগ করুন। i যখন n কে ভাগ করতে না পারে, i কে ২ দিয়ে বৃদ্ধি দিয়ে প্রক্রিয়া চালিয়ে যান।

  • যদি n একটি প্রাইম নম্বর হয় এবং ২ এর চেয়ে বড় হয়, তবে উপরের দুটি ধাপে n ১ হবে না। তাই n প্রিন্ট করুন যদি সেটি ২ এর চেয়ে বড় হয়।

উদাহরণ

import math

def productPrimeFactors(n):
    product = 1
    # প্রাইম ফ্যাক্টর ২
    if (n % 2 == 0):
        product *= 2
        while (n % 2 == 0):
            n = n / 2
    # n অবশ্যই বিজোড় হবে
    for i in range(3, int(math.sqrt(n)), 2):
        # যতক্ষণ i n কে ভাগ করে, i প্রিন্ট করুন এবং n কে ভাগ করুন
        if (n % i == 0):
            product = product * i
            while (n % i == 0):
                n = n / i
    # n একটি প্রাইম নম্বর যা ২ থেকে বড়
    if (n > 2):
        product = product * n
    return product

# main()
n = 8
print(int(productPrimeFactors(n)))

আউটপুট

2

ভেরিয়েবলগুলোর স্কোপ নিচের চিত্রে উল্লেখ করা হয়েছে:

পাইথন প্রোগ্রাম: একটি সংখ্যার অনন্য প্রাইম ফ্যাক্টরের গুণফল বের করা

উপসংহার

এই নিবন্ধে আমরা একটি দেয়া সংখ্যার অনন্য প্রাইম ফ্যাক্টরের গুণফল বের করার ব্রুট ফোর্স এবং দক্ষ পদ্ধতি শিখেছি।

  1. পাইথনে একটি সংখ্যার সর্বোচ্চ质因数 বের করার প্রোগ্রাম

  2. পাইথনে একটি সংখ্যার ফ্যাক্টোরিয়াল প্রোগ্রাম

  3. পাইথন প্রোগ্রাম: n-তম ফিবোনাচ্চি সংখ্যা বের করা

  4. পাইথন প্রোগ্রাম: n-তম ক্যাটালান সংখ্যা বের করা