编写程序实现y=m²!+n²!+…+k²!

#include<stdio.h>
long square(int p);
long factorial(int q);
int main()
{
    int n,i,a;
    long y=0;
    printf("请输入要求解的整数的个数:",a);
    scanf("%d",&a);
    for(i=1;i<=a;i++)
    {
        printf("请输入需要求解的整数:",n);
        scanf("%d",&n);
        y+=square(n);
    }
    printf("The result is %ld.\n",y);
    return 0;
}
long square(int p)
{
    int k;
    long r;
    long factorial(int);
    k=p*p;
    r=factorial(k);
    return r;
}
long factorial(int q)
{
    long fac;
    if(q==0||q==1)
    {
        fac=1;
    }
    else
    fac=factorial(q-1)*q;
    return fac;
}

#include<stdio.h>
long square(int p);
long factorial(int q);
int main()
{
	int n,i,a;
	long y=0;
	printf("请输入要求解的整数的个数:",a);
	scanf("%d",&a);
	for(i=1;i<=a;i++)
	{
		printf("请输入需要求解的整数:",n);
	    scanf("%d",&n);
	    y+=square(n);
	}
	printf("The result is %ld.\n",y);
	return 0;
}
long square(int p)
{
	int k;
	long r;
	long factorial(int);
	k=p*p;
	r=factorial(k);
	return r;
}
long factorial(int q)
{
	long fac;
    if(q==0||q==1)
	{
		fac=1;
	}
	else
	fac=factorial(q-1)*q;
	return fac;
}

编写程序实现y=m²!+n²!+…+k²!