第14回【JavaScript】約数の個数、約数の列挙
現在取り組んでいるのは、paiza ラーニング問題集「ループメニュー 2」になります。
はじめに
猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。
JavaScript をゼロから勉強してみよう、のコーナー 14 回目です。
隙間時間も活用します。LunaSaki(嫁)が風呂に入っている間、とか。LunaSaki(嫁)が洗い物をしている間、とか。家事を手伝うこともなく、好きな勉強をしている LeoSaki(旦那)に対して何も言わないでいてくれる LunaSaki(嫁)に感謝です。
それでは、今日も頑張ってみようと思います。
約数の個数 (paizaランク D 相当)
整数 N が与えられます。
N の約数の個数を出力してください。
約数とは、N を割り切る整数のことを指します。
入力される値
N
・ 1 行で整数 N が与えられます。
入力値最終行の末尾に改行が1つ入ります。
期待する出力
N の約数の個数を出力してください。
また、末尾に改行を入れ、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
・ 1 ≦ N ≦ 1,000
入力例
100
出力例
9
「約数の個数」って検索ワードは、1 位 2 位を争うくらい人気があるみたいです。とりあえず、正攻法で書いてみようと思います。
JavaScript
process.stdin.resume();
process.stdin.setEncoding('utf8');
var lines = [];
var reader = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
reader.on('line', (line) => {
lines.push(line);
});
reader.on('close', () => {
const n = Number(lines[0]);
let cnt = 0;
for (let i = 1; i <= n; i++) {
if (n % i == 0) cnt++;
}
console.log(cnt);
});
Python
N = int(input())
cnt = 0
for i in range(1,N+1):
if N % i == 0:
cnt += 1
print(cnt)
約数の列挙 (paizaランク D 相当)
整数 N が与えられます。
N の約数を小さい方から順に改行区切りで出力してください。
入力される値
N
・ 1 行で整数 N が与えられます。
入力値最終行の末尾に改行が1つ入ります。
期待する出力
N の約数を小さい方から順に改行区切りで出力してください。
また、末尾に改行を入れ、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
・ 1 ≦ N ≦ 1,000
入力例
100
出力例
1
2
4
5
10
20
25
50
100
さっきの約数の列挙、console.log() を工夫すれば解ける問題。
JavaScript
process.stdin.resume();
process.stdin.setEncoding('utf8');
var lines = [];
var reader = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
reader.on('line', (line) => {
lines.push(line);
});
reader.on('close', () => {
const n = Number(lines[0]);
let cnt = 0;
for (let i = 1; i <= n; i++) {
if (n % i == 0) console.log(i);
}
});
Python
N = int(input())
for i in range(1,N+1):
if N % i == 0:
print(i)
最後に
Python のときは平方根を利用した解答を考えたりしていたけれど、今後、そういう問題が出るのを知っているので。正攻法の解き方だけチャレンジしました。
JavaScrip の for 文って、結構自由度高くて書きやすいなぁっていう印象。Python は、range の中で足し算したり引き算したり、ちょっとした工夫が必要になっちゃいますよね。
引き続き、よろしくお願いいたします!
ディスカッション
コメント一覧
まだ、コメントがありません