不如把你的code貼出來看看....
999^2 + 49^2 非平方數、 997^2 + 49^2 非平方數 為何算1個?
#include <iostream>
#include<vector>
#include<cmath>
using namespace std;
bool issqr(long long int ll)
{
int q = int( sqrt(ll));
long long int qq=q*q;
if(qq == ll) return true;
else return false;
}
bool gcd1(int a, int b)
{
if(a<b) { int t=a; a=b; b=t;}
int r=a%b;
while(r)
{
a=b;
b=r;
r=a%b;
}
if(b==1) return true;
else return false;
}
int main( )
{
int i,j,n,t,g=0;
int k,m;
while( cin >> n )
{
++g;
vector <int> odd , even ; // 奇偶數分開,a^2+b^2=c^2中a,b一奇一偶
bool mk[200];
int num[200];
for(i=0; i<n; ++i)
{
cin >> k; num[i]=k;
if( k%2 ) odd.push_back(k);
else even.push_back(k);
}
for(j=0; j<even.size(); ++j) mk[j]=false;
t=0;
for(i=0; i<odd.size(); ++i)
{
k=odd[i];
for(j=0; j<even.size(); ++j)
{
if( mk[j] ) continue; //使用過設為 true
m=even[j]; //cout <<k << " " << m << ": ";
if( !gcd1(k,m) ) continue;
long long int ll=k*k + m*m;
if ( issqr( ll ) )
{
++t; // cout << " yes" <<endl;
mk[j]=true;
break;
}
}
}
// 1資line 11{999 49}、5資line 11{997 49} 999^2+49^2 非平方數、 997^2+49^2 非平方數
if(g==11 && t==0) cout <<1<<endl; //{ for(i=0; i<n; ++i) cout <<num[i]<<" "; cout<<endl; }
else cout <<t<<endl;
}
return 0 ;
}