以下是用C语言实现的程序,包含两个函数,分别用于判断素数和计算阶乘,并实现了打印所有符合条件的数的功能:
#include <stdio.h>
int isPrime(int num) {
if (num <= 1) {
return 0;
}
for (int i = 2; i <= num / 2; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
int factorial(int num) {
if (num == 0) {
return 1;
}
int result = 1;
for (int i = 1; i <= num; i++) {
result *= i;
}
return result;
}
int main() {
for (int num = 800; num <= 1200; num++) {
int temp = num;
int sum = 0;
while (temp > 0) {
sum += factorial(temp % 10);
temp /= 10;
}
if (isPrime(sum)) {
printf("%d:", num);
temp = num;
while (temp > 0) {
int digit = temp % 10;
printf("%d!", digit);
if (temp >= 10) {
printf("+");
}
temp /= 10;
}
printf("=%d\n", sum);
}
}
return 0;
}