Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript를 사용하여 디오판틴 방정식의 모든 해 찾기

<시간/>

문제

숫자 n을 받는 JavaScript 함수를 작성해야 합니다. 우리의 함수는 −

와 같은 숫자 x와 y를 모두 찾아야 합니다.
x^2 - 4y^2 = n.

그리고 그러한 모든 쌍의 배열을 반환해야 합니다.

예시

다음은 코드입니다 -

const num = 90005;
const findSolution = (num = 1) => {
   const res = [];
   let a, b;
   for(let a = 1; a <= Math.sqrt(num); a++){
      if(Number.isInteger(b = num/a)){
         if(Number.isInteger(x = (b+a)/2)){
            if(Number.isInteger(y = (b-a)/4)){
               res.push([x, y]);
            };
         };
      };
   };
   return res;
};
console.log(findSolution(num));

출력

[ [ 45003, 22501 ], [ 9003, 4499 ], [ 981, 467 ], [ 309, 37 ] ]