完整:输入a,找出小于等于a的所有勾股正整数,还要求两个直角边长度互质。(比如说输出3 4 5就没有6 8 10了)
Gcc通过
[mw_shl_code=c,true]
#include <stdio.h>
#include <math.h>
int gcd(int a,int b)
{
return b==0?a:gcd(b,a%b);
}
int huzhi(int a,int b)
{
if(gcd(a,b)==1)return 1;
return 0;
}
int main()
{
int a;
printf("你要输出多少以内的整数?\n");
scanf("%d",&a);
int t=0,i,j,k;
for(i=1;i<=a;i++)
{
for(j=i;j<=a;j++)
{
k=(int)sqrt((double)i*i+j*j);
if(i*i+j*j==k*k&&huzhi(i,j)&&k<=a)
{
++t;
printf("Case #%d:%d %d %d\n",t,i,j,k);
}
}
}
return 0;
}
[/mw_shl_code] |