📅  最后修改于: 2020-10-23 01:16:54             🧑  作者: Mango
当各个数字的阶乘之和等于该数字时,数字可以说是一个强数。
例如,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;
}
在上面的代码中,从用户检索输入数据,然后检查该数据是否为强数。
输出量
#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;
}
输出: