【JavaScript】7-21 求特殊方程的正整数解 (15分)

题目:

本题要求对任意给定的正整数N,求方程X^2​​+Y​^2​​=N的全部正整数解。

输入格式:

输入在一行中给出正整数N(≤10000)。

输出格式:

输出方程X​^2​​+Y​^2​​=N的全部正整数解,其中XY。每组解占1行,两数字间以1空格分隔,按X的递增顺序输出。如果没有解,则输出 No Solution

输入样例1:

884

输出样例1:

10 28

20 22

输入样例2:

11

输出样例2:

No Solution

JavaScript代码:

const { parse } = require('path')
var readline = require('readline')

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
})

rl.on('line', function(line) {
    var N = parseInt(line)
    var ret = solution(N)
    console.log(ret)
})

function solution(N) {
    var arr = new Array()
    var flag = 0
    if(N > 0 && N <= 10000) {
        for(let X = 1;X <= 100;X++){
            for(let Y = 1;Y <= 100;Y++){
                var mul = X * X + Y * Y
                var s = X + ' ' + Y
                if( mul == N && X <= Y){                    
                    arr.push(s)
                    flag = 1 
                }                
            }
        }
        if(flag == 0) {
            return ('No Solution')
        }
        if(flag == 1) {
            return arr.join('
')
        }      
    }
  
}

注意:循环时注意范围,由N的范围可知X、Y的范围,避免超时问题。

原文地址:https://www.cnblogs.com/moonskies/p/14326384.html