λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
κ°œμΈκ³΅λΆ€/Algorithm

[λ°±μ€€][Node.js] 5086번 : λ°°μˆ˜μ™€ μ•½μˆ˜

by πŸ‡λ°•λ΄‰λ΄‰πŸ‡ 2021. 11. 8.

 

 

Algorithm

-  λ°°μˆ˜μ™€ μ•½μˆ˜ -

 


 

문제

4 × 3 = 12이닀.

이 식을 톡해 λ‹€μŒκ³Ό 같은 사싀을 μ•Œ 수 μžˆλ‹€.

3은 12의 μ•½μˆ˜μ΄κ³ , 12λŠ” 3의 λ°°μˆ˜μ΄λ‹€.

4도 12의 μ•½μˆ˜μ΄κ³ , 12λŠ” 4의 λ°°μˆ˜μ΄λ‹€.

두 μˆ˜κ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, λ‹€μŒ 3가지 쀑 μ–΄λ–€ 관계인지 κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

  1. 첫 번째 μˆ«μžκ°€ 두 번째 숫자의 μ•½μˆ˜μ΄λ‹€.
  2. 첫 번째 μˆ«μžκ°€ 두 번째 숫자의 λ°°μˆ˜μ΄λ‹€.
  3. 첫 번째 μˆ«μžκ°€ 두 번째 숫자의 μ•½μˆ˜μ™€ 배수 λͺ¨λ‘ μ•„λ‹ˆλ‹€.

 

μž…μΆœλ ₯ μ˜ˆμ‹œ

 

문제 ν’€κΈ°

const readline = require("readline");
const rl = readline.createInterface({
	input: process.stdin,
	output: process.stdout,
});
let input = [];
rl.on("line", function (line) {
	input.push(line.toString());
}).on("close", function () {
	input.pop();
	input = input.map((el) => el.split(" ").map((el) => Number(el)));

	for (let i = 0; i < input.length; i++) {
		if (input[i][0] > input[i][1]) {
			let mn = input[i][1];
			let num = 2;
			while (true) {
				if (input[i][0] === mn) {
					console.log("multiple");
					break;
				} else if (input[i][0] < mn) {
					console.log("neither");
					break;
				}
				mn = input[i][1] * num++;
			}
		} else {
			let factorNum = [];
			let fn = 1;
			while (true) {
				if (input[i][1] % fn === 0) {
					factorNum.push(fn);
				}
				fn++;
				if (fn > input[i][1]) break;
			}
			if (factorNum.includes(input[i][0])) {
				console.log("factor");
			} else {
				console.log("neither");
			}
		}
	}
	process.exit();
});

 

 

 

λ°˜μ‘ν˜•

λŒ“κΈ€