[ 백준 ] 6131 완전 제곱수 [ js ]

Ann·2023년 6월 20일
0

Algorithm

목록 보기
48/53

6131 완전 제곱수

문제

상근이는 선영이와 함께 게임을 하고 있다. 먼저, 상근이는 두 양의 정수 A와 B를 고른다. (1 ≤ B ≤ A ≤ 500) 그 다음, 선영이는 상근이가 고른 수를 맞춰야 한다.

상근이는 선영이에게 다음과 같은 힌트를 주었다.

A의 제곱은 B의 제곱보다 N만큼 커 (1 ≤ N ≤ 1,000)

위의 힌트 조건을 만족하는 A와 B 쌍의 개수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 N이 주어진다.

출력

상근이의 힌트 조건을 만족하는 (A,B) 쌍의 개수를 출력한다.

풀이

// let input = require('fs').readFileSync('/dev/stdin').toString().trim();
let input = 15;
let N = parseInt(input);
let answer = [];
for(let i=1; i<=500; i++){
    if(Math.sqrt(N+(i*i))%1===0){
        answer.push(i);
    }
}
console.log(answer.length)

두 양의 정수를 A, B라 하였을 때, A² - B² = N 이므로 A = √(B²+N)이라고 할 수 있다.
A와 B가 모두 정수이어야 하므로 √(B²+N)가 정수인지 판별하도록 1로 나눈 나머지가 0인 경우에만 B값을 array에 push하였다.
마지막으로 array의 길이를 출력하여 (A, B) 쌍의 개수를 구하였다.

profile
안녕하세요

0개의 댓글