Menu
Coddy logo textTech

Counting

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} というように、三つ組はちょうど1つ存在します。

p = 120 のときは、{20,48,52}, {24,45,51}, {30,40,50} というように、三つ組はちょうど3つ存在します。

対照的に、p=20 のときは三つ組は存在しません。

p≤120 の範囲では、三つ組が3つある p が1つ (p=120)、三つ組が2つある p が3つ (p=60,84,90)、そして三つ組がちょうど1つだけある p が13個存在します。

challenge icon

チャレンジ

難しい

ただ1つの三つ組を持つ p≤1000 はいくつありますか?

整数 N を受け取り、整数ピタゴラスの三つ組を1つだけ持つ p≤N の個数を返す関数 count1PythagoreanTripletSolution を作成してください。

自分で試してみよう

#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;
}

数学パズルのすべてのレッスン

5Diophantine Equation

IntroductionA problem

8Pythagorean triplet

IntroductionRight angle triangleCounting