PythonでProject Euler(1)

Problem 1「3と5の倍数」

10未満の自然数のうち, 3 もしくは 5 の倍数になっているものは 3, 5, 6, 9 の4つがあり, これらの合計は 23 になる.
同じようにして, 1000 未満の 3 か 5 の倍数になっている数字の合計を求めよ.

【自己回答】

results = 0

for x in range(1000):
if x % 3 == 0 or x % 5 == 0:
results += x

print(results)

# 実行結果
233168

【他回答】

print(sum([x for x in range(1000) if x % 3 == 0 or x % 5 == 0]))

# 実行結果
233168

:速度比較
range(10000000)で比較。単位はms

1st 2nd 3rd 4th 5th
自己回答 1423 1442 1399 1503 1506
他回答 1048 1057 1077 1076 1072

Problem 2「偶数のフィボナッチ数」

フィボナッチ数列の項は前の2つの項の和である. 最初の2項を 1, 2 とすれば, 最初の10項は以下の通りである.
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
数列の項の値が400万以下の, 偶数値の項の総和を求めよ.

【自己回答】

def fibonacci(max):
a, b = 1, 1
list = []
while b < max:
a, b = b, a+b
list.append(a)
return sum([x for x in list if x % 2 == 0])

print(fibonacci(4000000))

# 実行結果
4613732

【他回答】

result = 0
fib = [1,2]
while fib[-1]+fib[-2] < 4000000:
fib.append(fib[-1]+fib[-2])
print(sum([x for x in fib if x%2 == 0]))

# 実行結果
4613732

:速度比較
maxを10 ** 10000で比較。単位はms。あまり変わりませんでした。

1st 2nd 3rd 4th 5th
自己回答 596 587 582 572 591
他回答 638 643 614 641 603

コメント

現在コメントはありません

新しいコメント

*
*
*

admin

こんにちは!Bicepperです。
メインはフロントですが、Python・AWS・GCPやったりと手を広げまくってます。

筋トレ歴10年目。筋トレのこともたまーに書いたりします。

Twitter Feed