C Exercises: Find Strong Numbers within a range of numbers

C For Loop: Exercise-48 with Solution

Write a C program to find Strong Numbers within a range of numbers.

Pictorial Presentation:

Find Strong Numbers within a range of numbers

Sample Solution:

C Code:

#include <stdio.h>
void main()  
    int i, n, n1, s1=0,j,k,en,sn;  
    long fact; 

     printf("\n\n  Find Strong Numbers within an range of numbers:\n ");

/* If sum of factorial of digits is equal to original number then it is Strong number */
    printf("Input starting range of number : ");  
    scanf("%d", &sn);
    printf("Input ending range of number: ");  
    scanf("%d", &en); 
    printf("\n\nThe Strong numbers are :\n"); 

        fact = 1;  
          for(i=1; i<=j % 10; i++)  
            fact = fact * i;  
            s1 = s1 + fact;  
        printf("%d  ", n1); 

Sample Output:

  Find Strong Numbers within an range of numbers:                                                             
Input starting range of number : 1                                                                            
Input ending range of number: 200                                                                             
The Strong numbers are :                                                                                      
1  2  145 


Flowchart : Find Strong Numbers within a range of numbers

C Programming Code Editor:

Improve this sample solution and post your code through Disqus.

Previous: Write a C program to check whether a number is a Strong Number or not.
Next: Write a c program to find out the sum of an A.P. series.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

C Programming: Tips of the Day

Printing hexadecimal characters in C:

You are seeing the ffffff because char is signed on your system. In C, vararg functions such as printf will promote all integers smaller than int to int. Since char is an integer (8-bit signed integer in your case), your chars are being promoted to int via sign-extension.

Since c0 and 80 have a leading 1-bit (and are negative as an 8-bit integer), they are being sign-extended while the others in your sample don't.

char    int
c0 -> ffffffc0
80 -> ffffff80
61 -> 00000061
Here's a solution:
char ch = 0xC0;
printf("%x", ch & 0xff);

This will mask out the upper bits and keep only the lower 8 bits that you want.

Ref : https://bit.ly/3vOLizM