#はじめに
元々Rubyを中心に、学んでいましたが、Rubyで書く内容を他の言語であればどのように書くのか?とふと思い、Pythonに興味があったため、勉強をしてみようと思いました。
そんな中で、
AIZU ONLINE JUDGE
というサイトを知り、ちょうど良いトレーニングになりそうだと思ったので、少しずつ挑戦してみることにしました。
本当は、アプリ等をどんどん作成したほうがトレーニングになるのかなと思いつつ、基礎の部分として損はないだろうと思い、やり始めています。
##3-D 約数の数
######3つの整数 a、b、cを読み込み、aからbまでの整数の中に、 cの約数がいくつあるかを求めるプログラムを作成してください。
######Input
a、b、cが1つの空白区切りで1行に与えられます。
######Output
約数の数を1行に出力してください。
######例
a=1 , b=10 ,c=30のとき、
約数の数は6つ
####解答
3-D.rb
# 回数を調べる
a,b,c = gets.split(" ").map(&:to_i)
count = 0
for i in a..b do
if c%i == 0
count += 1
end
end
puts(count)
3-D.py
# 回数を調べる
a,b,c = map(int,input().split(" "))
count = 0
for i in range(a, b + 1):
if c % i == 0:
count += 1;
print(count)
##総和と配列もついでに求めてみる
せっかくなので、総和や配列を取り出す方法も一緒に考えてみました。
もっと綺麗なコードもあると思うのですが・・・
3-D.rb
# 回数だけではなく、中身を取り出し、総和を確認する
a,b,c = gets.split(" ").map(&:to_i)
count = 0
divisions = []
sum = 0
for i in a..b do
if c%i == 0
count += 1
# Rubyではpush、Pythonでappend
divisions.push(i)
# sum += i 最後に p sum でもOK
end
end
puts(count)
p divisions
print(divisions.sum)
3-D.py
# 回数だけではなく、中身を取り出し、総和を確認する
a,b,c = map(int,(input().split(" ")))
divisions = []
for i in range(a,b+1):
if c % i ==0:
count += 1
divisions.append(i);
print(count)
print(divisions)
print(sum(divisions))
こう見ると、RubyとPythonはやはり似ているところが多いのかなと思いました。
##メモ
- Rubyについて
- p, puts, printメソッドの違いの再認識(https://qiita.com/ryo0916/items/daf75aca9675f5a01d17)