返回

CF 304A(Pythagorean Theorem II-n内勾股数)

发布时间:2022-10-29 21:13:23 316

A. Pythagorean Theorem II

time limit per test

memory limit per test

input

output

In mathematics, the Pythagorean theorem — is a relation in Euclidean geometry among the three sides of a right-angled triangle. In terms of areas, it states:

In any right-angled triangle, the area of the square whose side is the hypotenuse (the side opposite the right angle) is equal to the sum of the areas of the squares whose sides are the two legs (the two sides that meet at a right angle).

ab and c, often called the Pythagorean equation:

a2 + b2 = c2

c represents the length of the hypotenuse, and a and b

 

 

CF 304A(Pythagorean Theorem II-n内勾股数)_#define

 

 

n, your task is to count how many right-angled triangles with side-lengths ab and c that satisfied an inequality 1 ≤ a ≤ b ≤ c ≤ n.

Input

n (1 ≤ n ≤ 104)

Output

Print a single integer — the answer to the problem.

Sample test(s)

input

5

output

1

input

74

output

35

显然n^2暴力枚举

注意要加优化-if (i*i+j*j>n*n) break. 不然我的n^2过不了

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define For(i,n) for(int i=1;i<=n;i++)
#define Fork(i,k,n) for(int i=k;i<=n;i++)
#define Rep(i,n) for(int i=0;i<n;i++)
#define Forp(x) for(int p=pre[x];p;p=next[p])
int main()
{
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
int n;
cin>>n;
int ans=0;
For(i,n)
for(int j=i+1;j<=n;j++)
{
int c=i*i+j*j;
if (c>n*n) break;
double x=sqrt(c);
if (abs((x-(int)x))<1e-8) ans++;
}
cout<<ans<<endl;

return 0;
}

 

 

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线