এটি আমার প্রথম চ্যালেঞ্জ!
পটভূমি
নিখুঁত সংখ্যাটি একটি ধনাত্মক পূর্ণসংখ্যার, এটি নিজে বাদে তার সমস্ত বিভাজকের যোগফলের সমান।
তাই 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
সমস্ত বিভাজন রয়েছে । সমস্ত বিভাজকের যোগফল (আবার, ছাড়া )। হয় হয় (যদি ) বা (যদি ) হয়।n
n
s
d1, ..., dm
n
[<>]
<
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
আইএমও হওয়া উচিত ।