geo_analysisの日記

エンジニアになりたい無職のProjectEuler

プロジェクトオイラー1

プロジェクトオイラーの問題1をpythonを使って解いてみました。プログラミング初心者なので助長なコードをお許しください。
問題
自然数nが与えられたときに、n未満の3の倍数または5の倍数の総和を求めよ。
プログラム

N = int(input()) #与えられる自然数
multiples3_list = [ multiple + 1 for multiple in range(N-1) if (multiple + 1) % 3 == 0 ] #3の倍数のリスト
multiples5_list = [ multiple + 1 for multiple in range(N-1) if (multiple +1 ) % 5 == 0 ] #5の倍数のリスト
multiples_list = multiples3_list + multiples5_list
multiples_set = set(multiples_list) #3または5の倍数の集合
sum_of_multiples = 0
for multiple in multiples_set: #3または5の倍数の総和を求める
    sum_of_multiples += multiple
print(sum_of_multiples)