测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A38492. 勾股数问题描述勾股数是很有趣的数学概念。如果三个正整数a、b、c,满足a的平方 + b的平方 = c的平方,而且 1 ≤a ≤ b≤ c,我们就将a、b、c组成的三元组称为勾股数。你能通过编程,数数有多少组勾股数,能够满足 ≤ 吗?输入描述输入一行,包含一个正整数。约定 1 ≤ ≤ 1000。输出描述输出一行,包含一个整数,表示有组满足条件的勾股数。样例输入 1 5样例输出 1 1样例解释 1满…

填空题 中等

题目描述

勾股数

问题描述

勾股数是很有趣的数学概念。如果三个正整数a、b、c,满足a的平方 + b的平方 = c的平方,而且 1 ≤a ≤ b≤ c,我们就将a、b、c组成的三元组称为勾股数。你能通过编程,数数有多少组勾股数,能够满足   ≤   吗?

输入描述

输入一行,包含一个正整数。约定 1 ≤ ≤ 1000。

输出描述

输出一行,包含一个整数,表示有组满足条件的勾股数。

样例输入 1 

5

样例输出 1 

1

样例解释 1

满足≤ 5 的勾股数只有一组,即(3,4,5)。

样例输入 2 

13

样例输出 2 

3

样例解释 2

满足 ≤ 13 的勾股数有 3 组,即(3,4,5)、(6,8,10)和(5,12,13)。

参考答案

#include <iostream> #include <cmath> using namespace std; int main() { int n, cnt = 0; cin >> n; for (int a = 1; a <= n; a++) for (int b = a; b <= n; b++) { int c2 = a * a + b * b; int c = (int)(sqrt(c2) + 0.5); if (c > n) break; if (c * c == c2) cnt++; } cout << cnt << endl; return 0; }
上一题 下一题