এই নিবন্ধে, আমরা নীচে দেওয়া সমস্যার বিবৃতিটির সমাধান সম্পর্কে শিখব −
সমস্যা বিবৃতি
একটি সংখ্যা ইনপুট n দেওয়া হলে, কাজটি হল একটি সংখ্যার বিজোড় গুণনীয়কের যোগফল বের করা।
এখানে আমাদের প্রথমে সমস্ত জোড় কারণগুলিকে দূর করতে হবে৷
সমস্ত জোড় গুণনীয়ক অপসারণ করার জন্য, আমরা বারবার n ভাগ করি যতক্ষণ না এটি 2 দ্বারা বিভাজ্য হয়। এই ধাপের পরে, আমরা শুধুমাত্র সংখ্যাটির বিজোড় গুণনীয়ক পাই।
নিচে বাস্তবায়ন করা হল -
উদাহরণ
import math def sumofoddFactors( n ): #prime factors res = 1 # ignore even factors while n % 2 == 0: n = n // 2 for i in range(3, int(math.sqrt(n) + 1)): count = 0 curr_sum = 1 curr_term = 1 while n % i == 0: count+=1 n = n // i curr_term *= i curr_sum += curr_term res *= curr_sum # n is a prime number. if n >= 2: res *= (1 + n) return res # main n = 27 print(sumofoddFactors(n))
আউটপুট
41
সমস্ত ভেরিয়েবলগুলিকে গ্লোবাল ফ্রেমে ঘোষণা করা হয়েছে যেমন নীচে দেওয়া চিত্রে দেখানো হয়েছে −
উপসংহার
এই নিবন্ধে, আমরা একটি সংখ্যার বিজোড় গুণনীয়কগুলির যোগফল খুঁজে বের করার পদ্ধতি সম্পর্কে শিখেছি