素勾股数 C++ 算法

来源:百度知道 编辑:UC知道 时间:2024/05/29 03:34:09
要求能运行!

#include<iostream.h>

void main()
{
int n;
n=1000;
for(int i=1;i<n;++i)
{
for(int v=i;v<n;++v)
{
for(int q=v;q<n;++q)
{
if(((i*i+v*v)==q*q))
{
cout <<i <<" "<<v <<" "<<q;
cout <<endl;
}
}
}
}
}

#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<<&quo