একটি সংখ্যা n দিলে আমাদের তার সমস্ত গুণনীয়ক খুঁজে বের করতে হবে এবং সেই গুণনীয়কগুলির গুণফল খুঁজে বের করতে হবে এবং ফলাফলটি ফেরত দিতে হবে, যেমন, একটি সংখ্যার গুণনীয়কের গুণফল। একটি সংখ্যার গুণনীয়ক হল সেই সংখ্যাগুলি যা 1 সহ সংখ্যাটিকে সম্পূর্ণরূপে ভাগ করতে পারে৷ 6-এর গুণনীয়কগুলির মতো হল − 1, 2, 3, 6৷
এখন কার্য অনুসারে আমাদের সংখ্যার সমস্ত গুণনীয়ক গুণনীয়ক খুঁজে বের করতে হবে।
ইনপুট −৷ n =18
আউটপুট − 5832
ব্যাখ্যা - 1 * 2 * 3 * 6 * 9 * 18 =5832
ইনপুট −৷ n =9
আউটপুট − 27
ব্যাখ্যা - 1 * 3 * 9 =27
সমস্যা সমাধানের জন্য নিচের পদ্ধতিটি ব্যবহার করা হয়েছে −
-
ইনপুট নম্বর নিন।
-
i =1 থেকে i*i<=num
পর্যন্ত লুপ -
তারপর num%i==0 আছে কিনা চেক করুন, চেক করুন
-
যদি num%i ==i তাহলে পণ্যের মান সেট করুন =(পণ্য*i)%1e7
-
অন্যথায় পণ্যটিকে (পণ্য * i) % MAX হিসাবে সেট করুন এবং পণ্যটিকে ( পণ্য * সংখ্যা / i) % MAX হিসাবে সেট করুন৷
-
-
পণ্যটি ফেরত দিন।
অ্যালগরিদম
StartIn ফাংশন লং লং প্রোডাক্ট ফ্যাক্টর(int num) ধাপ 1→ পণ্যটিকে 1 ধাপ 2 হিসাবে ঘোষণা করুন এবং শুরু করুন ==i তারপর, পণ্যটিকে (পণ্য * i) হিসাবে সেট করুন % MAX অন্যথায় পণ্যটিকে হিসাবে সেট করুন (পণ্য * i) % MAX পণ্য হিসাবে সেট করুন (পণ্য * সংখ্যা / i) % MAX ধাপ 3 → পণ্য ফেরত দিন ফাংশন int main() ধাপ 1 → ঘোষণা করুন এবং n কে 9 ধাপ 2 হিসাবে আরম্ভ করুনউদাহরণ
#include#define MAX 1000000000// factorslong long productfactor(int num){ long long product =1; জন্য (int i =1; i * i <=num; i++){ if (num % i ==0){ //সমান গুণনীয়ক শুধুমাত্র একবার গুণ করা উচিত যদি (num / i ==i) পণ্য =(উপাদান * i) % MAX; // অন্যথায় উভয়টিকে গুণ করুন { পণ্য =(পণ্য * i) % MAX; পণ্য =(পণ্য * সংখ্যা / i) % MAX; } } } পণ্য ফেরত;} int main(){ int n =9; printf("%lld\n", পণ্য ফ্যাক্টর(n)); রিটার্ন 0; আউটপুট
উপরের কোডটি চালালে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবে27