Menu
Coddy logo textTech

Counting

Coddy의 수학 수수께끼 코스 레슨 — 20개 중 17번째.

피타고라스 세 수 {a, b, c}는 직각 삼각형을 이룹니다. 

각 변의 길이가 정수인 직각 삼각형 {a, b, c}의 둘레를 p라고 합시다.

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), 그리고 정확히 하나의 세 수만 갖는 p는 13개입니다.

challenge icon

챌린지

어려움

단 하나의 삼조(triplet)를 가지는 p≤1000은 몇 개입니까?

정수 N을 입력받아, 단 하나의 정수 피타고라스 삼조(Pythagorean triplet)만을 가지는 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