📜  C中判断一个数是否为强数

📅  最后修改于: 2020-10-23 01:16:54             🧑  作者: Mango

C中的强数

当各个数字的阶乘之和等于该数字时,数字可以说是一个强数。

例如,145是一个强数。

让我们通过一个例子来理解。

  • 程序检查数字是否强。
#include 
int main()
{
    int n;
    int sum=0;
    printf("Enter a number");
    scanf("%d",&n);
    int k=n;
    int r;
    while(k!=0)
    {
        r=k%10;
        int f=fact(r);
        k=k/10;
        sum=sum+f;
    }
    if(sum==n)
    {
        printf("\nNumber is a strong");
    }
    else
    {
        printf("\nNumber is not a strong");
    }
    return 0;
}
int fact(int r)
{
    int mul=1;
    for(int i=1;i<=r;i++)
    {
        mul=mul*i;
    }
    return mul;
    
}

在上面的代码中,从用户检索输入数据,然后检查该数据是否为强数。

输出量

  • 程序print从1到n的强数。
#include
int main()
{
    int fact=1,sum=0;
    int n,r;
    printf("Enter the 'n' number");
    scanf("%d",&n);
    printf("\n Strong numbers are :");
    for(int i=1;i<=n;i++)
    {
        int k=i;
        while(k!=0)
        {
            r=k%10;
            fact=factorial(r);
           
        
            k=k/10;
            sum=sum+fact;
        }
        if(sum==i){
        printf("%d, ",i);
        
           }
           sum=0;
    }
    
   
    return 0;
}

 int factorial(int f)
    {
        int mul=1;
        for(int i=1; i<=f;i++)
        {
            mul=mul*i;
        }
        return mul;
    }

输出量

  • 程序查找给定范围内的强数。
#include
int main()
{
    int fact=1,sum=0;
    int n1,n2,r;
    printf("Enter the first number");
    scanf("%d",&n1);
    printf("\nEnter the last number");
    scanf("%d",&n2);
    printf("\nStrong numbers are :");
    for(int i=n1;i<=n2;i++)
    {
        int k=i;
        while(k!=0)
        {
            r=k%10;
            fact=factorial(r);
            k=k/10;
            sum=sum+fact;
        }
        if(sum==i){
        printf("%d, ",i);
        }
           sum=0;
    }
   return 0;
}
int factorial(int f)
 {
        int mul=1;
        for(int i=1; i<=f;i++)
        {
            mul=mul*i;
        }
        return mul;
    }

输出: