একটি নম্বর x দেওয়া থাকলে যার n সংখ্যক ডিজিট আছে, আমাদের টাস্ক হলো চেক করা দেয়া নম্বরটি 'প্লাস পারফেক্ট নম্বর' কিনা। এজন্য নম্বরের প্রতিটি ডিজিট d-এর nth পাওয়ার (d^n) বের করে সব ডিজিট যোগ করতে হবে, যদি যোগফল n-এর সমান হয় তবে নম্বরটি প্লাস পারফেক্ট নম্বর। প্লাস পারফেক্ট নম্বর আর্মস্ট্রং নম্বর খুঁজে বের করার মতো।
নিচের উদাহরণে দেখানো হলো −

উদাহরণ
ইনপুট: 163 আউটপুট: Number is not a perfect_number ব্যাখ্যা: 1^3 + 6^3 + 3^3, 163-এর সমান নয় ইনপুট: 371 আউটপুট: Number is a perfect_number ব্যাখ্যা: 3^3 + 7^3 + 1^3, 371-এর সমান
নিচে ব্যবহৃত পদ্ধতি −
- প্রথম ধাপ: ইনপুট নম্বরের ডিজিট সংখ্যা গণনা।
- দ্বিতীয় ধাপ: একটি ডিজিটকে ইনপুট নম্বরের ডিজিট সংখ্যা ততবার পাওয়ার করা।
- তৃতীয় ধাপ: সব নম্বর যোগ করা এবং সমান কিনা চেক করা।
অ্যালগরিদম
Start
function int power(int a, int b) এ
ধাপ ১ → power = 1 ডিক্লেয়ার ও ইনিশিয়ালাইজ
ধাপ ২ → লুপ: While b>0
power = power * a সেট
b ১ কমান
ধাপ ৩ → power রিটার্ন
End function power
function int count(int n) এ
ধাপ ১ → i = 0 ডিক্লেয়ার ও ইনিশিয়ালাইজ
ধাপ ২ → লুপ: While n!=0
i ১ বাড়ান
n = n/10 সেট
End Loop
ধাপ ৩ → i রিটার্ন
function int perfect_number(int n) এ
ধাপ ১ → x = count(n) ডিক্লেয়ার ও ইনিশিয়ালাইজ
ধাপ ২ → rem = 0, m = 0 ডিক্লেয়ার ও ইনিশিয়ালাইজ
ধাপ ৩ → লুপ: While(n)
rem = n % 10 সেট
m = m + power(rem, x) সেট
n = n / 10 সেট
End Loop
ধাপ ৪ → m রিটার্ন
End Function perfect_number
function int main(int argc, char const *argv[]) এ
ধাপ ১ → n = 1634 ইনিশিয়ালাইজ
ধাপ ২ → If n == perfect_number(n) then,
Print "Number is a perfect_number "
ধাপ ৩ → else
Print "Number is not a perfect_number "
End if
End main
Stop
উদাহরণ
#include <stdio.h>
int power(int a, int b) {
int power = 1;
while(b > 0) {
power *= a;
b--;
}
return power;
}
int count(int n) {
int i = 0;
while(n != 0) {
i++;
n = n / 10;
}
return i;
}
int perfect_number(int n) {
int x = count(n);
int rem = 0, m = 0;
while(n) {
rem = n % 10;
m += power(rem, x);
n /= 10;
}
return m;
}
int main(int argc, char const *argv[]) {
int n = 1634;
if(n == perfect_number(n)) {
printf("Number is a perfect_number\n");
}
else
printf("Number is not a perfect_number\n");
return 0;
}
আউটপুট
উপরের কোড রান করলে নিচের আউটপুট জেনারেট হবে −
Number is a perfect_number