#include <stdio.h>
#include <stdint.h>
//uint64_t 是一个构造数据类型 <=> typedef unsigned long int
uint64_t Sum(uint64_t n) {
uint64_t sum = 0;
uint64_t fact = 1;
for (uint64_t i = 1; i <= n; i++) {
fact *= i;
sum += fact;
}
return sum;
}
int main() {
uint64_t n;
printf("n(n>3):");
scanf("%llu", &n);
if (n < 3) {
return 0;
}
printf("1!+2!+…+%d!=%lu\n", n, Sum(n));
return 1;
}
/* #ifndef __int8_t_defined
# define __int8_t_defined
typedef signed char int8_t;
typedef short int int16_t;
typedef int int32_t;
# if __WORDSIZE == 64
typedef long int int64_t;
# else
__extension__
typedef long long int int64_t;
# endif
#endif
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
#ifndef __uint32_t_defined
typedef unsigned int uint32_t;
# define __uint32_t_defined
#endif
#if __WORDSIZE == 64
typedef unsigned long int uint64_t;
#else
__extension__
typedef unsigned long long int uint64_t;
#endif */