编程 可以做直角三角形斜边的正整数的程序

来源:百度知道 编辑:UC知道 时间:2024/06/21 05:18:14
满足c平方=a平方+b平方,b大于a,a、b、c均为正整数,c小于1000的所有c的正整数值。若c小于10000呢?若是(c、a、b)各组值呢?

#include<math.h>
#include<stdio.h>

#define MAX_NUM 1000

int main()
{
long a,b,c;
for(a=1; a<= (long)(MAX_NUM/sqrt(2)); a++)
{
for(b=a; b<=MAX_NUM; b++)
{
c = (long)sqrt(a*a+b*b);
if( a*a+b*b==c*c && c<MAX_NUM )
printf("(c,a,b)=(%ld,%ld,%ld)\n",c,a,b);
}
}
return 0;
}

c小于1000时的解
(c,a,b)=(5,3,4)
(c,a,b)=(13,5,12)
(c,a,b)=(10,6,8)
(c,a,b)=(25,7,24)
(c,a,b)=(17,8,15)
(c,a,b)=(15,9,12)
(c,a,b)=(41,9,40)
(c,a,b)=(26,10,24)
(c,a,b)=(61,11,60)
(c,a,b)=(20,12,16)
(c,a,b)=(37,12,35)
.
.
.
(c,a,b)=(985,696,697)

本来想贴完整结果,超字数了。

小于10000时的解,自己运行看结果吧。

#define MAX_NUM 1000
改为
#define MAX_NUM 10000
就可以了。

#include <stdio.h>
#include <math.h>
main()
{
int a,b,c,i,j;
for(i=1;i<