ট্র্যাক
/
Python
Python
/
অনুশীলনী
/
গুণিতকের যোগফল
গুণিতকের যোগফল

গুণিতকের যোগফল

সহজ

ভূমিকা

আপনি এমন একটি প্রতিষ্ঠানের হয়ে কাজ করেন, যেটি অনলাইনে খেলার জন্য একটি ফ্যান্টাসি-সারভাইভাল গেম বানায়।

কোনো খেলোয়াড় একটি লেভেল শেষ করলে তাকে এনার্জি পয়েন্ট দেওয়া হয়। কতটা এনার্জি দেওয়া হবে, সেটা নির্ভর করে খেলোয়াড় ওই লেভেলটি ঘুরে দেখতে গিয়ে কোন কোন জাদুকরী আইটেম পেয়েছে তার উপর।

নির্দেশনা

আপনার কাজ হলো এমন কোড লেখা, যা হিসাব করে দেয় খেলোয়াড়রা একটি লেভেল সম্পন্ন করলে তাদের কত এনার্জি পয়েন্ট দেওয়া হয়।

কত পয়েন্ট দেওয়া হবে তা দুটি বিষয়ের উপর নির্ভর করে:

  • খেলোয়াড় যে লেভেলটি সম্পন্ন করেছে (একটি সংখ্যা)।
  • ওই লেভেলে খেলোয়াড় যে জাদু-সামগ্রীগুলো সংগ্রহ করেছে, তার প্রতিটির বেস ভ্যালু।

এনার্জি পয়েন্ট দেওয়া হয় নিচের নিয়মগুলো অনুযায়ী:

  1. প্রতিটি জাদু-সামগ্রীর জন্য তার বেস ভ্যালুটি নিন, তারপর ওই ভ্যালুর এমন সব গুণিতক খুঁজে বের করুন যেগুলো লেভেল সংখ্যাটির চেয়ে ছোট।
  2. সংখ্যাগুলোর সেট একত্র করুন।
  3. ডুপ্লিকেটগুলো সরিয়ে দিন।
  4. বাকি থাকা সব সংখ্যার যোগফল বের করুন।

চলুন একটি উদাহরণ দেখি:

খেলোয়াড়টি লেভেল ২০ সম্পন্ন করেছে এবং ৩ ও ৫ বেস ভ্যালুর দুটি জাদু-সামগ্রী পেয়েছে।

খেলোয়াড়ের পাওয়া এনার্জি পয়েন্ট হিসাব করতে হলে আমাদের ওই বেস ভ্যালুগুলোর লেভেল ২০-এর চেয়ে ছোট সব ইউনিক গুণিতক খুঁজে বের করতে হবে।

  • ২০-এর চেয়ে ছোট ৩-এর গুণিতক: {3, 6, 9, 12, 15, 18}
  • ২০-এর চেয়ে ছোট ৫-এর গুণিতক: {5, 10, 15}
  • সেটগুলো একত্র করে ডুপ্লিকেটগুলো বাদ দিন: {3, 5, 6, 9, 10, 12, 15, 18}
  • ইউনিক গুণিতকগুলোর যোগফল বের করুন: 3 + 5 + 6 + 9 + 10 + 12 + 15 + 18 = 78
  • তাই লেভেল ২০ সম্পন্ন করে ৩ ও ৫ বেস ভ্যালুর দুটি জাদু-সামগ্রী পেয়ে খেলোয়াড় ৭৮ এনার্জি পয়েন্ট পায়।

sum_of_multiples ফাংশনের test ইনপুটগুলো সম্পর্কে আপনি নিচের বিষয়গুলো ধরে নিতে পারেন:

  • সব ইনপুট সংখ্যাই অঋণাত্মক int (অর্থাৎ শূন্যসহ স্বাভাবিক সংখ্যা)।
  • অবশ্যই গুণনীয়কগুলোর একটি list দিতে হবে, আর এর এলিমেন্টগুলো অনন্য এবং ঊর্ধ্বক্রমানুসারে সাজানো থাকে।
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Python Exercism

গুণিতকের যোগফল শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Python ট্র্যাকের 17টি কনসেপ্ট146টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।