নিকোমাকাসের (৬০ - ১২০ খ্রিস্টাব্দ) ধনাত্মক পূর্ণসংখ্যার শ্রেণিবিভাগ অনুসারে একটি সংখ্যা perfect, abundant, না deficient তা নির্ধারণ করুন।
গ্রিক গণিতবিদ নিকোমাকাস ধনাত্মক পূর্ণসংখ্যার জন্য একটি শ্রেণিবিভাগ তৈরি করেছিলেন, যেখানে প্রতিটি সংখ্যাকেই তার প্রকৃত গুণনীয়কের সমষ্টির ভিত্তিতে perfect, abundant বা deficient, এই তিনটি শ্রেণির ঠিক একটিতে ফেলা হয়।
প্রকৃত গুণনীয়কের সমষ্টি বলতে সংখ্যাটির নিজেকে বাদ দিয়ে তার গুণনীয়কগুলোর যোগফলকে বোঝায়।
যেমন, 15 সংখ্যাটির প্রকৃত গুণনীয়কের সমষ্টি 1 + 3 + 5 = 9।
কোনো সংখ্যা তার প্রকৃত গুণনীয়কের সমষ্টির সমান হলে সেই সংখ্যাকে perfect বলা হয়। যেমন:
6 একটি perfect সংখ্যা, কারণ 1 + 2 + 3 = 6
28 একটি perfect সংখ্যা, কারণ 1 + 2 + 4 + 7 + 14 = 28
কোনো সংখ্যা তার প্রকৃত গুণনীয়কের সমষ্টির চেয়ে ছোট হলে সেই সংখ্যাকে abundant বলা হয়। যেমন:
12 একটি abundant সংখ্যা, কারণ 1 + 2 + 3 + 4 + 6 = 16
24 একটি abundant সংখ্যা, কারণ 1 + 2 + 3 + 4 + 6 + 8 + 12 = 36
কোনো সংখ্যা তার প্রকৃত গুণনীয়কের সমষ্টির চেয়ে বড় হলে সেই সংখ্যাকে deficient বলা হয়। যেমন:
8 একটি deficient সংখ্যা, কারণ 1 + 2 + 4 = 7
কোনো সংখ্যা perfect কি না তা নির্ধারণ করার একটি উপায় তৈরি করুন। আপনার ভাষার ট্র্যাকের ওপর নির্ভর করে আপনাকে হয়তো কোনো সংখ্যা abundant বা deficient কি না তা নির্ধারণের উপায়ও তৈরি করতে হতে পারে।
এই অনুশীলনীর জন্য ধরা যাক, আমরা চাই কলকারী কেবল অশূন্য ইনপুট দিয়েই classify কল করার দায়িত্ব নেবে।
তাই অনুগ্রহ করে classify ফাংশনটি দিয়ে অ্যাসার্ট করান যে তার ইনপুট অশূন্য।
আরও বিস্তারিত জানতে Zig Language Reference এবং std.debug.assert-এর ইমপ্লিমেন্টেশন দেখুন।
তবে লক্ষ্য করুন, এই অনুশীলনীতে বর্তমানে 0 ইনপুট পরীক্ষা করা হয় না (কারণ std.testing এখনো প্যানিক প্রত্যাশা করা সমর্থন করে না)।
Exercism-এ সাইন আপ করুন, Zig ট্র্যাকের 104টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।