C Program to Check for Prime Armstrong or Perfect Number

C Program to Check for Prime Armstrong or Perfect Number

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.

Recommended C Programs

AuthorAdmin

Greetings, I'm Devendra Dode, a full-stack developer, entrepreneur, and the proud owner of Tutsmake.com. My passion lies in crafting informative tutorials and offering valuable tips to assist fellow developers on their coding journey. Within my content, I cover a spectrum of technologies, including PHP, Python, JavaScript, jQuery, Laravel, Livewire, CodeIgniter, Node.js, Express.js, Vue.js, Angular.js, React.js, MySQL, MongoDB, REST APIs, Windows, XAMPP, Linux, Ubuntu, Amazon AWS, Composer, SEO, WordPress, SSL, and Bootstrap. Whether you're starting out or looking for advanced examples, I provide step-by-step guides and practical demonstrations to make your learning experience seamless. Let's explore the diverse realms of coding together.

Leave a Reply

Your email address will not be published. Required fields are marked *