【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的范围,避免超时问题。