Menu
CoddyTech

计数

Coddy 数学谜题 课程的第 17 课,共 20 课。

毕达哥拉斯三元组 {a, b, c} 构成一个直角三角形。 

设 p 为一个各边长度均为整数的直角三角形的周长,边长为 {a, b, c}。

p=12 时恰好有一个三元组:{3,4,5};p=24 时为 {6,8,10};p=30 时为 {5,12,13}。

p = 120 时恰好有三个三元组:{20,48,52}、{24,45,51}、{30,40,50}。

相比之下,p=20 时没有三元组。

对于 p≤120,有一个 p 对应三个三元组(p=120),三个 p 各对应两个三元组(p=60,84,90),恰好有 13 个 p 只对应一个三元组。

challenge icon

挑战

困难

有多少个 p≤1000 只有一个勾股数三元组?

编写一个函数 count1PythagoreanTripletSolution,接收一个整数 N,并返回满足 p≤N 且只有一个整数勾股数三元组的整数个数。

亲手试试

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "solution.h"

int main() {
    int n;
    if (scanf("%d", &n) != 1) n = 0;
    int r = count1PythagoreanTripletSolution(n);
    printf("%d\n", r);
    return 0;
}

数学谜题中的所有课

自己练习: C 在线编译器