【欧拉计划】39. Integer right triangles

(本题取 $n=1000$)

【思路】最外层枚举 $p$ 的值,里面两层枚举 $a,b$,从而计算得到是否有符合的 $c$。时间复杂度为 $\mathcal O(n^3)$:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<stdio.h>
int maxp,maxn;
int main()
{
for(int p=12;p<=1000;++p)
{
int s=0;
for(int a=3;a<=p/3;++a)
{
for(int b=a+1;b<=p;++b)
{
int c=p-a-b;
if(a*a+b*b==c*c&&c>b)++s;
}
}
if(s>maxn)
{
maxn=s;
maxp=p;
}
}
printf("%d",maxp);
return 0;
}

【欧拉计划】39. Integer right triangles

https://hensier.github.io/projecteuler/39/

作者

hensier

发布于

2022-05-01

更新于

2023-01-02

许可协议

评论