【JavaScript】7-21 求特殊方程的正整数解 (15分)
题目:
本题要求对任意给定的正整数N,求方程X^2+Y^2=N的全部正整数解。
输入格式:
输入在一行中给出正整数N(≤10000)。
输出格式:
输出方程X^2+Y^2=N的全部正整数解,其中X≤Y。每组解占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')
        }      
    }
  
}
注意:循环时注意范围,由N的范围可知X、Y的范围,避免超时问题。
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号