এটি আমার প্রথম চ্যালেঞ্জ!
পটভূমি
নিখুঁত সংখ্যাটি একটি ধনাত্মক পূর্ণসংখ্যার, এটি নিজে বাদে তার সমস্ত বিভাজকের যোগফলের সমান।
তাই 6নিখুঁত সংখ্যা 1 + 2 + 3 = 6।
অন্যদিকে 12না, কারণ 1 + 2 + 3 + 4 + 6 = 16 != 12।
কার্য
আপনার কাজটি সহজ, একটি প্রোগ্রাম লিখুন, যা দেওয়া nহিসাবে এই বার্তাগুলির মধ্যে একটি মুদ্রণ করবে :
আমি একটি নিখুঁত সংখ্যা, কারণ
d1 + d2 + ... + dm = s == n
আমি নিখুঁত সংখ্যা নই, কারণd1 + d2 + ... + dm = s [<>] n
যেখানে বাদে
d1, ... dmসমস্ত বিভাজন রয়েছে । সমস্ত বিভাজকের যোগফল (আবার, ছাড়া )। হয় হয় (যদি ) বা (যদি ) হয়।nn
sd1, ..., dmn
[<>]<s < n>s > n
উদাহরণ
জন্য nহচ্ছে 6"আমি একটি নিখুঁত সংখ্যা কারণ 1 + 2 + 3 = 6 == 6":
জন্য nহচ্ছে 12: "আমি না একটি নিখুঁত সংখ্যা am, কারণ 1 + 2 + 3 + 4 + 6 = 16 > 12"
জন্য nহচ্ছে 13: "আমি নিখুঁত সংখ্যা নই, কারণ 1 = 1 <13"
বিধি
nআপনার ভাষার মানের চেয়ে বড় নয়int।- আপনি
nস্ট্যান্ডার্ড ইনপুট থেকে, কমান্ড লাইন আর্গুমেন্ট থেকে বা কোনও ফাইল থেকে পড়তে পারেন । - আউটপুট বার্তাটি স্ট্যান্ডার্ড আউটপুটে মুদ্রণ করতে হবে এবং আউটপুটে কোনও অতিরিক্ত অক্ষর উপস্থিত হতে পারে না (এটির পিছনে সাদা স্থান বা নিউলাইন থাকতে পারে)
- আপনি কোনও বিল্ট-ইন বা লাইব্রেরি ফাংশন ব্যবহার করতে পারবেন না যা আপনার জন্য টাস্কটি সমাধান করবে (বা এর মূল অংশ)। না
GetDivisors()বা এরকম কিছু। - অন্যান্য সমস্ত স্ট্যান্ডার্ড ফাঁকগুলি প্রযোজ্য।
বিজয়ী
এটি কোড-গল্ফ তাই বাইট জেতে সংক্ষিপ্ততম কোড !
=এবং ==একই সমীকরণে ব্যবহার করবেন ? ওটা কোন অর্থ প্রকাশ করে না. এটি d1 + d2 + ... + dm = s = nআইএমও হওয়া উচিত ।