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개입니다.
챌린지
어려움단 하나의 삼조(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;
}