当各个数字的阶乘之和等于该数字时,数字可以说是一个强数。
例如,145是一个强数。
让我们通过一个例子来理解。
- 程序检查数字是否强。
#include <
stdio.h>
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;
}
在上面的代码中,从用户检索输入数据,然后检查数据是否为强数。
输出量
文章图片
- 程序打印从1到n的强数。
#include<
stdio.h>
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<
stdio.h>
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;
}
【c中的强数】输出:
文章图片