পারফেক্ট সংখ্যা in c programming
পারফেক্ট সংখ্যা :
যেই সংখ্যা তার চাইতে কম,নিজের উৎপাদক গুলোর যোগফলের সমস্তটির সমান তাকে পারফেক্ট নম্বর বলে।
কি? সংজ্ঞা টা মাথার উপর দিয়ে গেলো তাই না ,একটা উদারন দেই। ৬ একটি পারফেক্ট নম্বর এর উৎপাদক গুলি ১,২,৩ও ৬। ৬ এর ছোট ১,২ও ৩ এদের যোগফল ১+২+৩=৬,তাই ৬ পারফেক্ট নম্বর । তেমনি ২৮ =১+২+৪+৭+১৪,২৮ ও ফারফেক্ট নম্বর। তো চলুন দেখে নেই সি প্রোগ্রামিং কোডটি যেখানে একটি নম্বর দিলে তা পারফেক্ট কিনা বলে দিবে।
এলগোরিদম :
আমাদের আলগোরিদমটি হবে।
১.শুরু কর।২. সংখ্যাটি নাও।
৩.ওই সংখ্যাটির নিজের হতে ছোট উৎপাদক গুলো বের কর এবং যোগ কর।
৪. প্রাপ্ত যোগফল, ইম্পুটকৃত সংখ্যাটির সমান হলে ,সংখ্যাটি পারফেক্ট। অন্যথায় নয়।
৫.ফলাফম প্রিন্ট কর।
৬.শেষ কর।
কোডঃ
#include<stdio.h>
int main()
{
int num,i,sum;
printf("TOMAR SONKHA TI DAO \n");
scanf("%d",&num);
sum=0;
for(i=1;i<num;i++)
{
if(num%i==0)
{
sum+=i;
}
}
if(sum==num)
{
printf("%d EKTI PARFECT NUMBER \n",num);
}else{
printf("%d PARFECT NUMBER NOY\n",num);
}
return 0;
}
ইনপুট : TOMAR SONKHA TI DAO
৬আউটপুট : ৬ PARFECT NUMBER
কোডের ময়না তদন্ত :
১.#include<stdio.h>
//ইম্পুট ,আউটপুট লাইব্রেরি ফাংশন ডিক্লার
int main()
//মেইন এখন হতে ফাংশন শুরু
{
int num,i,sum;
{
int num,i,sum;
//ভেরিএবলে ডিক্লারেশন num=সংখ্যাটি নিতে ,i=ফর লুপ চালাতে ,sum=যোগফল রাখতে।
২. printf("TOMAR SONKHA TI DAO \n");
২. printf("TOMAR SONKHA TI DAO \n");
//সংখ্যাটি নিয়ে num এ রাখা হয়েছে।
scanf("%d",&num);
sum=0;
scanf("%d",&num);
sum=0;
//প্রথমে sum =০;
৩. for(i=1;i<num;i++)//লুপ টি ১ হতে ওই সংখ্যার এক ঘর কম পয্ন্ত চলবে। যেহেতু ওই সংখ্যাটিকে আমাদের দরকার নাই। মনে করি আমাদের ৬ দেওয়া হয়েছে।
{
if(num%i==0)
৩. for(i=1;i<num;i++)//লুপ টি ১ হতে ওই সংখ্যার এক ঘর কম পয্ন্ত চলবে। যেহেতু ওই সংখ্যাটিকে আমাদের দরকার নাই। মনে করি আমাদের ৬ দেওয়া হয়েছে।
{
if(num%i==0)
//প্রথমে ৬ ,১ দ্বারা নিঃশেষ বিভাজ্য ,তাই ১ ,৬ এর একটি উৎপাদক।
{
sum+=i;// ১, sum এর সাথে যোগ হবে sum =০+১.
}
}
{
sum+=i;// ১, sum এর সাথে যোগ হবে sum =০+১.
}
}
এভাবে পরের বার ,ফর লুপে i =২ হবে। ৬%২=০ তাই ২ ও ৬ এর উৎপাদক। ২ sum এর সাথে যুক্ত হবে। sum =৩।
আবার , ফর লুপে i =৩হবে। ৬%৩=০ তাই ৩ও ৬ এর উৎপাদক। ৩,sum এর সাথে যুক্ত হবে। sum =৬।
এভাবে লুপ ৫ পযন্ত চলবে কিন্তু এ থেকে এর মাঝে ৬ এর আর কেন উৎপাদক নেই। তাই কোনও কিছু যোগ হবে না।
if(sum==num)
if(sum==num)
// এখন তুলনা করার পালা যা ,আমরা if else এর সাহায্য করব। ,num =sum সত্যি কিনা।
{
{
//হ্যা ,num (৬)=sum (৬)
তাই এটা প্রিন্ট করবে।
printf("%d EKTI PARFECT NUMBER \n",num);
}else{
printf("%d EKTI PARFECT NUMBER \n",num);
}else{
//নয়তো ইটা প্রিন্ট করতো।
printf("%d PARFECT NUMBER NOY\n",num);
}
return 0;
}
printf("%d PARFECT NUMBER NOY\n",num);
}
return 0;
}
১ হতে n তম সংখ্যা পযন্ত পারফেক্ট নম্বর খোঁজার কোড।
#include<stdio.h>
#include<math.h>
int main()
{
int num,i,sum,j;
printf("Enter a number to know all perfect numbers till n\n");
scanf("%d",&num);
printf("The perfect numbers between 1 and %d are:",num);
for(i=1;i<=num;i++)
{
sum=0;
for(j=1;j<i;j++)
{
if(i%j==0)
{
sum+=j;
}
}
if(sum==i)
{
printf("%d\n",i);
}
}
return 0;
}
লিখেছেন ,Md. Rusul Azom Sumon CEO & FOUNDER azomTech
(লেখাটি লেখক কতৃক সংরক্ষিত কপি করা কপি করে পরিমার্জন করে অন্যকোথোও প্রকাশ করা সম্পূর্ণ নিষিদ্ধ ,কিন্তু অবাণিজ্যিক উদ্যেশে(শিক্ষার জন্য ) লেখকের অনুমতি নিয়ে ব্যবহার করা যাবে )
No comments