暴力万碎
#include <bits/stdc++.h>
using namespace std;
int main(){
long long a,b,c,n,step=0;
cin>>n;
for(long a=1;a<=n;a++)
for(long b=1;b<=n;b++)
for(long c=1;c<=n;c++)
if(pow(a,2)+pow(b,2)==pow(c,2)&&1<=a&&a<=b&&b<=c&&c<=n) step++;
cout<<step;
}
最优解
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,step=0;
cin>>n;
for(int i=1;i<=n;i++)
for(int j=i;j<=n;j++){
if(sqrt(i*i+j*j)-(int)sqrt(i*i+j*j)==0&&sqrt(i*i+j*j)<=n)step++;
}
cout<<step;
}

京公网安备 11010502036488号