কম Time complexity তে একটি সংখ্যার Divisor বের করার অ্যালগরিদম (Algorithm)
ডিভিসর কি আমরা সবাই হইতবা জানি । তবুও একটু আলোচনা করে নেওয়া যাক । ধরি একটি সংখ্যা ২০, তাহলে এর ডিভিসর হবে ১,২,৪,৫ এবং ২০ । কারন এই সব সংখ্যা দ্বারা ২০ কে ভাগ করা যাবে।তাহলে ডিভিসর কি সেইটা আমরা একটু ঝালিয়া নিলাম।এখন তাহলে এইটার প্রোগ্রাম নিয়ে আলোচনা করি। আমরা সাধারনত ডিভিসর বের করার জন্য একটি লুপ চালিয়া মোড করে বের করে ফেলি।কিন্তু এইভাবে করলে আমাদের প্রোগ্রাম এর Time complexity অনেক বেড়ে যাবে। কারন যদি আমাদের বলা হয় ১০০০০০০০০০ এর ডিভিসর বের করতে দেন আমরা যদি সাধারণ ভাবে করি তাহলে আমাদের ১০০০০০০০০০ বার লুপ ঘুরাইতে হবে।এইটা আমাদের কাছে সহজ হলেও কম্পিউটার এর কাছে তা না।নিচে প্রোগ্রামটি এবং execution time দেখি। তাহলে এখানে execution time ৭ সেকেন্ড। তাহলে আমাদের অউটপুট পেতে সময় লাগবে ৭ সেকেন্ড।যদি আরও বড় ইনপুট দেওয়া হত তাহলে অউটপুট আসতে আরও সময় লাগত। এই প্রোগ্রাম টিকেই আমরা আপডেট করে Time complexity কমিয়ে আনতে পারি। নিচের প্রোগ্রামটা দেখি। এখানে কয়েকটা লাইন বেশী ইমপ্লেমেনট করা হয়েছে। এখন দেখি এখানে কি কি করা হয়েছে।এখানে লুপ এর মধ্যে sqrt ইউস করে আমরা লুপটা ঘুরানো কমাইছি। ১০০০০...