somewhere in... blog
x
ফোনেটিক ইউনিজয় বিজয়

রুট/বিগেইনার লেভেলের প্রোগ্রামিং প্রবলেমস : পর্ব-২ এর সলুশ্যন

০৬ ই জানুয়ারি, ২০১২ রাত ১:১৪
এই পোস্টটি শেয়ার করতে চাইলে :

০১. একটি বেসিক ক্যালকুলেটর।

______: একটি প্রোগ্রাম লিখুন যা ইনপুট হিসেবে ২ টি ইন্টিজার নাম্বার নিবে। অতপর ইনপুট হিসেবে অপারেটর (+,-,*,/) নিবে। যেই অপারেটর দেওয়া হবে ঐ দুটি নাম্বারের উপর সেই ক্যালকুলেশন করে আউটপুট দেখাবে। যেমন, নাম্বার হিসেবে যদি ১৫ আর ২৫ দেওয়া হয় এবং অপারেটর হিসেবে মাইনাস (-) চিহ্ন দেওয়া হয় তাহলে আউটপুট হবে -১০.

সমাধান: এখানে দুটো ভ্যারিয়েবল a,b তে আমরা ইনপুট নিছি। আর একটা ক্যারেক্টর টাইপ ভ্যারিয়েবল op তে আমরা অপারেটরকে ইনপুট নিছি। (লাইন ৮-১৫) এরপর, লাইন ১৭-২৬ এ চারটি অপারেটর এর জন্য আমরা ৪ বার op কে চেক করে দেখেছি যে তাতে কি আছে, সেই অনুযায়ী কন্ডিশনের নিচের লাইনে আউটপুট দিয়েছি।



০২. ৩ টি নাম্বারকে বড় থেকে ছোট করুন যারা কেউ কারো সমান নয় [এ্যারে ইউজ করা যাবে না]।

______: ৩ টি নাম্বার ৩ টি আলাদা ভ্যারিয়েবল এ নিতে হবে। নাম্বার ৩ টি কেউ কারো সমান দেওয়া হবে না। আপনি আউট হিসেবে বড় থেকে ছোট ক্রমানুসারে তাদের দেখাবেন। যেমন ইনপুট যদি হয় ১৫, ৫, ২৫ তহালে আউটপুট দেখাবেন ২৫>১৫>৫. যারা হেল্প চান তারা নীচের ফ্লো-চার্ট টি ইউজ করতে পারেন

*****[বড় করে দেখতে নিউ ট্যাব এ ওপেন করুন ছবিটিকে]*****



সমাধান: এক্ষেত্রে আমি কিছুই বলবো না, ধরুন a,b,c এই তিনটি ভ্যারিয়েবলে ৩ টি ভ্যালু আমরা ইনপুট নিয়েছি। এখন উপরের ফ্লো-চার্টের সাথে নীচের ইফ..এলস গুলো মেলান।



০৩. ৩ টি নাম্বারকে বড় থেকে ছোট করুন যারা একে অপরের সমান হতে পারে [এ্যারে ইউজ করা যাবে না]।

______: ৩ টি নাম্বার ৩ টি আলাদা ভ্যারিয়েবল এ নিতে হবে। নাম্বার ৩ টি একে অপরের সমান হতেও পারে নাও হতে পারে। আপনি আউটপুট হিসেবে বড় থেকে ছোট ক্রমানুসারে তাদের দেখাবেন।নীচের এক্সাম্পল গুলো দেখুন

ইনপুট: ১৫ ৫ ২৫
আউটপুট: ২৫>১৫>৫

ইনপুট: ৫ ১৫ ৫
আউটপুট: ১৫>৫=৫

ইনপুট: ৫ ৫ ৫
আউটপুট: ৫=৫=৫

যারা হেল্প চান তারা নীচের ফ্লো-চার্ট টি ইউজ করতে পারেন

*****[বড় করে দেখতে নিউ ট্যাব এ ওপেন করুন ছবিটিকে]*****



সমাধান: এক্ষেত্রেও আমি কিছুই বলবো না, ধরুন a,b,c এই তিনটি ভ্যারিয়েবলে ৩ টি ভ্যালু আমরা ইনপুট নিয়েছি। এখন উপরের ফ্লো-চার্টের সাথে নীচের ইফ..এলস গুলো মেলান।



০৪. নির্দিষ্ট ব্যবধানের মধ্যেকার সবগুলো প্রাইম নাম্বার দেখান।

______: প্রাইম নাম্বার হচ্ছে সেগুলো যেগুলো ১ এবং সেই নাম্বার ছাড়া আর কোন নাম্বার দিয়ে নিঃশেষে ভাগ করা যায় না। ২ ডিফল্ট ভাবেই প্রাইম নাম্বার। ০ আর ১ কেনো প্রাইম না তা আমি জানি না। ৩ একটি প্রাইম কারণ ৩ কে ১ ও ৩ ছাড়া আর কোন নাম্বার দিয়ে নিঃশেষ ভাগ করা যায় না। এখানে আপনাকে প্রথমে দুটি নাম্বার দেওয়া হবে, ধরুন ১ এবং ১০. আপনার কাজ হবে ১ থেকে (১ সহ) ১০ পর্যন্ত (১০ সহ) নাম্বার গুলোর মধ্যে কোন গুলো প্রাইম তা আউটপুট এ দেখানো। এক্ষেত্রে আউটপুট হবে ২,৩,৫,৭

সমাধান: সমস্যার বর্ণনাতেই বলা আছে প্রাইম নাম্বার কি। তাই আর বলছি না। এখন ভাবুন, একটি নাম্বার প্রাইম কিনা তা কিভাবে বের করা যায়? সেই নাম্বারটিকে ২ থেকে শুরু করে সেই নাম্বার আগ পর্যন্ত নাম্বারগুলো দিয়ে ভাগ করে করে দেখতে হবে যে কোন নাম্বার দিয়ে ভাগ করলে ভাগফল শূণ্য হয়ে যাচ্ছে কিনা, যদি শূণ্য হয় তাহলে প্রাইম না কারণ প্রাইমকে ১ এবং প্রাইম নিজে ছাড়া আর কেউ নিঃশেষে ভাগ করতে পারে না। ওকে ধরুন টেস্ট নাম্বারটি ৩২০০০, তারমাণে এটা প্রাইম কিনা তা জানতে আপনাকে সর্বোচ্চ ২৯৯৯৮ টি mod অপারেশন করতে হবে। ওকে, তা করতে হবে না, কারণ কোন সংখ্যাকে তার অর্ধেকের চেয়ে বড় কোন সংখ্যা দিয়ে ভাগ করলে কখনোই তা পূর্ণ সংখ্যা হবেও না, ভাগশেষ দেখার দরকারই নাই। তারমানে ৩২০০০ কে আমরা টেস্ট করবো ২-(৩২০০০/২) অর্থাৎ ২-১৬০০০ পর্যন্ত সংখ্যা দিয়ে ৩২০০০ এর উপর mod অপারেশন চালাবো। কিন্তু তাও এই সংখ্যা অনেক বেশি। আরো কমাতে হবে। ওকে, কোন সংখ্যা যদি প্রাইম না হয় তাহলে তার স্কয়ার রুট এর ছোট অথবা সমান কোন নাম্বার দিয়ে তা অবশ্যই নিঃশেষে ভাগ যাবে। ৩২০০০ এর স্কয়ার রুট ১৭৮.৮৮৫৪, এখান থেকে শুধু ইন্টিজার অংশটি নিন অর্থাৎ ১৭৮. তারমানে ২-১৭৮ পর্যন্ত সংখ্যা দিয়ে আমরা ৩২০০০ এর ওপর mod অপারেশণ চালালেই পেয়ে যাবো যে প্রাইম কিনা। প্রাইম না হলে ২-১৭৮ এর মধ্যেই কোন না কোন নাম্বার দিয়ে ৩২০০০ নিঃশেষে বিভাজিত হবে।

এই ব্যাপারটাকেই আমরা কোড করছি। প্রথমে start, end এই দুটোর মধ্যে শুরুর আরে শেষের নাম্বার নিলাম, এটাই আমাদের রেঞ্জ।১৩ নম্বর লাইনে মূল কাজ শুরু হলো। prime=1 করার মাধ্যমে আমরা ধরে নিচ্ছি যে বর্তমান i একটি প্রাইম। যদি শেষ পর্যন্ত prime=1 ই থাকে তারমানে i একটি প্রাইম হবে। এরপর temp = sqrt(i); এর মাধ্যমে আমরা বর্তমান i এর স্কয়াররুট বের করে তা temp নিচ্ছি। তারপর, ঐ যে বললাম, ২ থেকে স্কয়াররুট পর্যন্ত নাম্বার দিয়ে টেস্ট করবো, সেই জন্যই দেখুন ১৮ নম্বর লাইনের লুপটি ২ থেকে temp পর্যন্ত চলছে। যদি কোন j দিয়ে i নিঃশেষে ভাগ যায় তাহলেই prime = 0; করে আমরা বেরিয়ে যাচ্ছি এই লুপ থেকে। (লাইন ২০-২৪). এরপর ২৬ নং লাইনে আমরা দেখছি যে prime=1 আছে কিনা এবং বর্তমান i ০ অথবা ১ কিনা, যদি prime=1 না হয় তাহলে তো কথাই নেই, বুঝাই যাচ্ছে যে প্রাইম না। আর যদি i এর মাণ ০ অথবা ১ হয় তাহলে ব্যাপারটা হলো যে এদেরকে প্রাইম বলা হয় না, তাই এদের ক্ষেত্রে যদি prime=1 হয়ও তবু আমরা সেটাকে প্রিণ্ট করবো না। একটি i এর কাজ হলে আমরা নেক্সট i এ যাবো। এভাবে প্রতিটি i কে চেক করে দেখবো যে তা প্রাইম কিনা।




-------------------------------------------------------------------------

পর্ব-১ এর সলুশ্যন এর লিংক

'প্রোগ্রামারস হাব' গ্রুপ এর লিংক
সর্বশেষ এডিট : ০৩ রা ফেব্রুয়ারি, ২০১২ দুপুর ১:০৬
০টি মন্তব্য ০টি উত্তর

আপনার মন্তব্য লিখুন

ছবি সংযুক্ত করতে এখানে ড্রাগ করে আনুন অথবা কম্পিউটারের নির্ধারিত স্থান থেকে সংযুক্ত করুন (সর্বোচ্চ ইমেজ সাইজঃ ১০ মেগাবাইট)
Shore O Shore A Hrosho I Dirgho I Hrosho U Dirgho U Ri E OI O OU Ka Kha Ga Gha Uma Cha Chha Ja Jha Yon To TTho Do Dho MurdhonNo TTo Tho DDo DDho No Po Fo Bo Vo Mo Ontoshto Zo Ro Lo Talobyo Sho Murdhonyo So Dontyo So Ho Zukto Kho Doye Bindu Ro Dhoye Bindu Ro Ontosthyo Yo Khondo Tto Uniswor Bisworgo Chondro Bindu A Kar E Kar O Kar Hrosho I Kar Dirgho I Kar Hrosho U Kar Dirgho U Kar Ou Kar Oi Kar Joiner Ro Fola Zo Fola Ref Ri Kar Hoshonto Doi Bo Dari SpaceBar
এই পোস্টটি শেয়ার করতে চাইলে :
আলোচিত ব্লগ

শাহ সাহেবের ডায়রি ।। রোড জ্যাম ইন ভিয়েতনাম

লিখেছেন শাহ আজিজ, ১৫ ই মে, ২০২৪ দুপুর ১২:৩৭



আমার ধারনা ছিল জটিল জ্যাম শুধু বাংলাদেশেই লাগে । কিন্তু আমার ধারনা ভুল ছিল । ভিয়েতনামে এরকম জটিলতর জ্যাম নিত্য দিনের ঘটনা । ছবিটি খেয়াল করলে দেখবেন... ...বাকিটুকু পড়ুন

আমার অন্যরকম আমি এবং কিছু মুক্তকথা

লিখেছেন জানা, ১৫ ই মে, ২০২৪ সন্ধ্যা ৭:০৬



২০১৯, ডিসেম্বরের একটি লেখা যা ড্রাফটে ছিল এতদিন। নানা কারণে যা পোস্ট করা হয়নি। আজ হঠাৎ চোখে পড়ায় প্রকাশ করতে ইচ্ছে হলো। আমার এই ভিডিওটাও ঐ বছরের মাঝামাঝি সময়ের।... ...বাকিটুকু পড়ুন

যেভাবে শরণার্থীরা একটি দেশের মালিক হয়ে গেলো!

লিখেছেন মাঈনউদ্দিন মইনুল, ১৫ ই মে, ২০২৪ সন্ধ্যা ৭:২৬



এবার একটি সেমিনারে প্রথমবারের মতো একজন জর্ডানির সাথে পরিচয় হয়। রাসেম আল-গুল। ঘনকালো মাথার চুল, বলিষ্ট দেহ, উজ্জ্বল বর্ণ, দাড়ি-গোঁফ সবই আছে। না খাটো, না লম্বা। বন্ধুত্বপূর্ণ ব্যক্তিত্ব। প্রতিটি সেশন... ...বাকিটুকু পড়ুন

নিউ ইয়র্কের পথে.... ২

লিখেছেন খায়রুল আহসান, ১৫ ই মে, ২০২৪ রাত ৯:০২


Almost at half distance, on flight CX830.

পূর্বের পর্ব এখানেঃ নিউ ইয়র্কের পথে.... ১

হংকং আন্তর্জাতিক বিমানবন্দরে প্লেন থেকে বোর্ডিং ব্রীজে নেমেই কানেক্টিং ফ্লাইট ধরার জন্য যাত্রীদের মাঝে নাভিশ্বাস উঠে গেল।... ...বাকিটুকু পড়ুন

সামুতে আপনার হিট কত?

লিখেছেন অপু তানভীর, ১৫ ই মে, ২০২৪ রাত ৯:০৩



প্রথমে মনে হল বর্তমান ব্লগাদের হিটের সংখ্যা নিয়ে একটা পোস্ট করা যাক । তারপর মনে পড়ল আমাদের ব্লগের পরিসংখ্যানবিদ ব্লগার আমি তুমি আমরা এমন পোস্ট আগেই দিয়ে দিয়েছেন ।... ...বাকিটুকু পড়ুন

×