编程求“最素勾股数”
发布网友
发布时间:2023-07-14 07:47
我来回答
共2个回答
热心网友
时间:2024-12-03 12:26
#define N 100
#include<iostream.h>
#include<math.h>
void main()
{
long count=0;
long M=(long)((double)N/sqrt(2));
for(long i=2;i<=M;++i)
for(long j=i+1;j<=N;++j)
{
long t=i*i+j*j;
long k=(long)sqrt(t);
if(k>N)break;
if(k*k==t)
{
for(int x=i; x >1 ; x--)
{
if(i%x==0 && j%x==0 && k%x==0)
{
break;
}
}
if(x==1) //最大公约数是1
{
cout<<(++count)<<":"<<i<<" "<<j<<" "<<k<<endl;
}
}
}
}
这样判断。
还有 i 是不可能为 1 的, 不存在 1 + y^2 = z^2 , 所以改为2起步了
热心网友
时间:2024-12-03 12:27
原来图灵杯也可以这样做啊~~