Write a c program to check whether a given number is a perfect number or not
#include <stdio.h>
int main()
{
int a, i, store =0;
printf("Enter the number\n");
scanf("%d", &a);
for (int i = 1; i < a; i++)
if (a % i == 0)
{
printf("%d\n", i);
store=store+i;
}
else;
printf("Sum of these number is %d", store);
if(store==a){
printf("Number is perfect\n");
}
else{
printf("Number is not perfect\n");
}
}
OUTPUT
Enter the number
54
1
2
3
6
9
18
27
Sum of these number is 66
Number is not perfect
Program: Explanation
हमे एक ऐसा प्रोग्राम बनाना है जिससे यूजर चेक कर पाए आखिर उसने जो नंबर इनपुट किया है वो परफेक्ट है या नहीं। मैं आपको बताना चाहूंगा कि किसी नंबर के सभी divisor (भाजक) का योग उस नंबर है यदि बराबर है तो वो नंबर परफेक्ट है यदि बराबर नहीं है तो नंबर परफेक्ट नहीं है। इस परिभाषा को ध्यान में रखते हुए हम प्रोग्राम बनाएंगे
- सबसे पहले स्टेप में हमने लाइब्रेरी इन्क्लुड कर ली है.
- int main फंक्शन स्टार्ट किया
- तीन वेरिएबल int a, i, store =0; बनाये
- यूजर से वैल्यू ली और a में स्टोर करवा दी है
- फिर लूप for (int i = 1; i < a; i++) लगाया है
- i का मतलब है लूप कहा से शुरू होगा और a का मतलब है कहा पर रुक जायेगा
- मैं आपसे जानना चाहूंगा कि divisor (भाजक) क्या होता है किसी नंबर भाजक वो होता है जो उस नंबर से पूर्णता भाज्य (Divisible) हो
- अब हमे एक ऐसी कंडीशन रखनी होगी जिससे ये पता चले कि जो भी नंबर यूजर से दिया है
- उसका भाज्य क्या है इसलिए मैंने if, else की कंडीशन लगाई
और if (a % i == 0) लिखा - इस तरह हमको सभी divisor मिल जायेंगे
- अब इनके योग के लिए store=store+i फार्मूला लगाया और उत्तर को store में स्टोर कर दिया
- इस तरह हमको सभी का योग मिल जायेगा
- यूजर द्वारा एंटर किया गया नंबर परफेक्ट है या नहीं इसके लिए हमे दूसरी बार if, else की कंडीशन लगानी होगी
- मैंने if(store==a) ये कंडीशन लगयी यदि नंबर इस कंडीशन को फॉलो करता है तो वो परफेक्ट है नहीं करता है तो परफेक्ट नहीं है
- और कुछ इस तरह हमने अपना उत्तर निकल लिया।