/*证明
四方定理:
指所有自然数至多只要用4个数的平方和就可以表示
输入一个数,求出这个自然数是哪几个数的平方和
*/
#include <stdio.h>
#include <math.h>
int s(int n,int* p);//声明自定义函数
int main()
{
int n,a[5];
printf("请输入一个自然数:");
scanf("%d",&n);
s(n,a);//传达数值和数组的地址
printf("%d=",n);
for(int i=0;i<4;i++)
{
if(a[i+1]==0)//判断这个数后面的数是否为0
{
printf("%d^2",a[i]);
break;
}
printf("%d^2+",a[i]);
}
}
int s(int n,int* p)
{
int *p1,*p2,*p3,*p4,t;
p1=p++;//a[0]
p2=p++;//a[1]
p3=p++;//a[2]
p4=p++;//a[3]
t=sqrt(n);//缩小范围
for(*p4=0;*p4<=t;(*p4)++)
for(*p3=0;*p3<=t;(*p3)++)
for(*p2=0;*p2<=t;(*p2)++)
for(*p1=0;*p1<=t;(*p1)++)
if((pow(*p1,2)+pow(*p2,2)+pow(*p3,2)+pow(*p4,2))==n)
return 0;
}
四方定理 输入一个数,求出这个自然数是哪几个数的平方和
于 2024-01-30 11:03:00 首次发布