692
社区成员




找出800-1200之间所有符合以下条件的数:该数的各位数字的阶乘和为素数。按如下格式打印出所有符合条件的数:
807:8!+0!+7!=45361
817:8!+1!+7!=45361
870:8!+7!+0!=45361
871:8!+7!+1!=45361
1002:1!+0!+0!+2!=5
1012:1!+0!+1!+2!=5
1020:1!+0!+2!+0!=5
…………
程序中包含两个函数,分别用于实现判断素数和计算阶乘。
这样~
#include <stdio.h>
#include <math.h>
int main()
{
int i, j, k, l, sum;
int a[10] = {1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880}; //0~9的阶乘
for (i = 8; i < 12; i++)
{
for (j = 0; j < 10; j++)
{
for (k = 0; k < 10; k++)
{
for (l = 0; l < 10; l++)
{
sum = a[i] + a[j] + a[k] + a[l];
if (sum > 2 && sum % 2 != 0 && sum % 3 != 0 && sum % 5 != 0 && sum % 7 != 0)
{
printf("%d%d%d%d: %d!+%d!+%d!+%d!=%d\n", i, j, k, l, i, j, k, l, sum);
}
}
}
}
}
return 0;
}