#include<stdio.h>
int a[300000000];
void show(int k)
{
int i = 0;
printf("位数: %d 位\n", k);
for (i = k; i >= 1; i--)
printf("%d", a[i]);
printf("\n");
}
int fun(int n)
{
int i, j, k = 1;
for (i = 2; i <= n; i++)
{
for (j = 1; j <= k; j++)
a[j] *= i;
for (j = 1; j <= k; j++)
{
if (a[j] / 10 >= 1 && j == k)
{
k++;
a[j + 1] = a[j + 1] + a[j] / 10;
a[j] = a[j] % 10;
}
else if (a[j] / 10 >= 1)
{
a[j + 1] = a[j + 1] + a[j] / 10;
a[j] = a[j] % 10;
}
}
}
return k;
}
int main()
{
a[1] = 1;
int n;
scanf("%d", &n);
printf("得到%d的阶乘:\n",n);
show(fun(n));
return 0;
}