问题 H: 勾股数(gou)
时间限制: 1 Sec 内存限制: 128 MB
提交: 19 解决: 15
[提交] [状态] [讨论版] [命题人:yisheng]
题目描述
输入整数R,输出小于等于R的满足X2+Y2=Z2的所有正整数X,Y,Z。
输入
只有一个数:R(5≤R≤1000000)。
输出
只有一个数:表示共有多少组满足条件的勾股数。
样例输入 Copy
10
样例输出 Copy
2
提示
任意一组勾股数(a,b,c) 可以表示为如下形式:a=m2-n2 ,b=2mn , c=m2+n2 ,其中m,n均为正整数,且 m>n 。
真简单……
#include<bits/stdc++.h>
using namespace std;
float n,a,b,c,s;
int main()
{
cin>>n;
for(int x=1;x<=sqrt(n);x++)
for(int y=1;y<=sqrt(n);y++)
{
a=xx-yy;
b=2xy;
c=xx+yy;
if(a>0&&c<=n)
s++;
}
cout<<s;
return 0;
}