LoginSignup
0
0

More than 1 year has passed since last update.

【Python、Ruby】約数と総和

Posted at

はじめに

元々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はやはり似ているところが多いのかなと思いました。

メモ

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0