c program to check whether a number is a prime, Armstrong, or perfect number; Throughout this tutorial, we will learn how to check whether a number is prime, Armstrong, or perfect number in c program using functions and without function.
Programs to Check for Prime Armstrong or Perfect Number in C
- C Program to Check for Prime Armstrong or Perfect Number
- C Program to Check for Prime Armstrong or Perfect Number using function
C Program to Check for Prime Armstrong or Perfect Number
/* C Program to Check for Prime Armstrong or Perfect Number */ #include <stdio.h> #include <math.h> int Check_Armstrong (int Number); int Perfect_Number(int Number); int Prime_Number(int Number); int main() { int Number; printf("\Please Enter Number :- "); scanf("%d", &Number); // Calling Check_Armstrong Function to Check whether it is an Armstrong Number or Not if (Check_Armstrong(Number)) printf("\n %d is an Armstrong Number.", Number); else printf("\n %d is not an Armstrong Number.", Number); // Calling Prime_Number Function to Check whether it is a Prime Number or Not if(Prime_Number(Number) ) printf("\n %d is a Prime Number", Number); else printf("\n %d is Not a Prime Number", Number); // Calling Perfect_Number Function to Check whether it is a Perfect Number or Not if (Perfect_Number(Number) ) printf("\n %d is a Perfect Number", Number) ; else printf("\n %d is not a Perfect Number", Number) ; return 0; } /* C Program for Armstrong Number */ int Check_Armstrong (int Number) { int Temp, Reminder, Times = 0, Sum = 0; Temp = Number; while (Temp != 0) { Times = Times + 1; Temp = Temp / 10; } for(Temp = Number; Temp > 0; Temp = Temp /10 ) { Reminder = Temp % 10; Sum = Sum + pow(Reminder, Times); } if ( Number == Sum ) return 1; else return 0; } /* C Program for Perfect Number */ int Perfect_Number(int Number) { int i, Sum = 0 ; for(i = 1 ; i < Number ; i++) { if(Number % i == 0) Sum = Sum + i ; } if (Sum == Number) return 1; else return 0; } /* C Program to Find Prime Number */ int Prime_Number(int Number) { int i, Count = 0; for (i = 2; i <= Number/2; i++) { if(Number%i == 0) { Count++; } } if(Count == 0 && Number != 1 ) return 1; else return 0; }
The output of the above c program; as follows:
Please Enter Number :- 2 2 is an Armstrong Number. 2 is a Prime Number 2 is not a Perfect Number
C Program to Check for Prime Armstrong or Perfect Number using Function
/** * C program to check prime, armstrong and perfect numbers using functions */ #include <stdio.h> #include <math.h> /* Function declarations */ int isPrime(int num); int isArmstrong(int num); int isPerfect(int num); int main() { int num; printf("Enter any number: "); scanf("%d", &num); // Call isPrime() functions if(isPrime(num)) { printf("%d is Prime number.\n", num); } else { printf("%d is not Prime number.\n", num); } // Call isArmstrong() function if(isArmstrong(num)) { printf("%d is Armstrong number.\n", num); } else { printf("%d is not Armstrong number.\n", num); } // Call isPerfect() function if(isPerfect(num)) { printf("%d is Perfect number.\n", num); } else { printf("%d is not Perfect number.\n", num); } return 0; } /** * Check whether a number is prime or not. * Returns 1 if the number is prime otherwise 0. */ int isPrime(int num) { int i; for(i=2; i<=num/2; i++) { /* * If the number is divisible by any number * other than 1 and self then it is not prime */ if(num%i == 0) { return 0; } } return 1; } /** * Check whether a number is Armstrong number or not. * Returns 1 if the number is Armstrong number otherwise 0. */ int isArmstrong(int num) { int lastDigit, sum, originalNum, digits; sum = 0; originalNum = num; /* Find total digits in num */ digits = (int) log10(num) + 1; /* * Calculate sum of power of digits */ while(num > 0) { // Extract the last digit lastDigit = num % 10; // Compute sum of power of last digit sum = sum + round(pow(lastDigit, digits)); // Remove the last digit num = num / 10; } return (originalNum == sum); } /** * Check whether the number is perfect number or not. * Returns 1 if the number is perfect otherwise 0. */ int isPerfect(int num) { int i, sum, n; sum = 0; n = num; for(i=1; i<n; i++) { /* If i is a divisor of num */ if(n%i == 0) { sum += i; } } return (num == sum); }
The output of the above c program; as follows:
Enter any number: 9 9 is not Prime number. 9 is Armstrong number. 9 is not Perfect number.