计数
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 只对应一个三元组。
挑战
困难有多少个 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 在线编译器