geo_analysisの日記

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

プロジェクトオイラー19

プロジェクトオイラーの問題19をPython3を使って解きました。 問題 Problem 19 - Project Euler 1901年1月1日から2000年12月31日までで、月の初めが日曜日である日数を求めなさいという問題です。上記問題ページにいくつかヒントがありますが、Pythonでは日…

プロジェクトオイラー23

プロジェクトオイラーの問題23をPython3で解きました。 問題 Problem 23 - Project Euler 問題は、2つの過剰数(自身を除く約数の和が、自分自身より大きい自然数のこと)の和で書き表すことのできない自然数の総和を求めなさいというものでした。ヒントと…

プロジェクトオイラー48

プロジェクトオイラーの97を解いていたところ、ゴリ押しで説いていた問題48が綺麗に解けたので解答を書きます。Python3で解きました。 問題 Problem 48 - Project Euler問題は簡単で、 の下10桁を求めなさいというものです。解答 import time start = time.t…

プロジェクトオイラー30

ProjectEulerの問題30をPython3を使って解きました。 問題 Problem 30 - Project Eulerこの問題は、自然数nで、 n = nの各桁の数字の5乗の和 となるものを見つけ、全て足し合わせなさいという問題です。コンピュータに上の式を満たす自然数を計算させるだけ…

プロジェクトオイラー22

プロジェクトオイラーの22をPython3を使って解きました。 問題projecteuler.netこの問題はもうウルトラ簡単です。 import time start = time.time() names = input().split('') names.sort() sum_of_iden_nums = 0 for name in names: iden_num = 0 for i in…

プロジェクトオイラー18

プロジェクトオイラーの問題18をPythonで解きました。projecteuler.net全てのルートを探索し、その中から目当てのものを見つけるのが最も考え方としてシンプルだと思うのですが、それだと、15!通り調べなければならないため、時間がかかります。(たぶん)そ…

プロジェクトオイラー16

プロジェクトオイラーの問題16をPython3で解きました。projecteuler.netこの問題も大きな数字を扱うんですが、Pythonでは大きな数字に困ることはないので、計算させるだけです。Pythonつよい。 N = int(input()) large_number_str = list(str(2 ** N)) large…

プロジェクトオイラー15

プロジェクトオイラーの問題15をPython3で解きました。projecteuler.netこの問題も、問題13と同様に、Pythonではただ計算させるだけで終わります。 product = 1 for number in range(21,41): product *=number divisor = 1 for number in range(1,21): divis…

プロジェクトオイラー14

プロジェクトオイラーの問題14をPython3で解きました。projecteuler.netCollatz問題と呼ばれるもので、数学的には未解決な問題をとりあえず計算してみましょうってやつでした。 collatz_list = [] for number in range(1000000): collatz_number = 1 while n…

プロジェクトオイラー13

プロジェクトオイラーの問題13をPython3で解きました。projecteuler.netPython3では桁溢れは起こらないので大きい数字同士の足し算は足せばいいだけです。 large_numbers = [int(input()) for i in range(100)] sum_of_largge_numbers = sum(large_numbers) …

プロジェクトオイラー12

プロジェクトオイラーの問題12をpythonで解きました。友人に約数の数え方を教えてもらい、助かりました。 問題projecteuler.net def prime_factors(N): #自然数Nの素因数分解 factors =[] i = 2 while i * i <= N: while N % i == 0: N = int(N / i) facto…

プロジェクトオイラー11

プロジェクトオイラーの問題11をpythonで解きました。 問題projecteuler.net matrix = [(input()).split(' ') for i in range(20)] #行列として20×20のデータを記憶する rows = range(20) cols = range(20) cells = [(row, col) for row in rows for col i…

プロジェクトオイラー10

プロジェクトオイラーの問題10をpythonで解きました。 問題projecteuler.net import math def primes(M): #エラトステネスのふるい prime_true_false = [1] * M prime_true_false[0] = 0 prime_true_false[1] = 0 for number in range(2, int(math.sqrt(M)…

プロジェクトオイラー9

プロジェクトオイラーの問題9をpythonで解きました。 問題projecteuler.net a_range = range(1, 1000) b_range = range(1, 1000) matrix = [(row, col) for row in a_range for col in b_range if row < col ] for a, b in matrix: if 1000*a + 1000*b - a*…

プロジェクトオイラー8

プロジェクトオイラーの問題8をpythonで解きました。 問題projecteuler.net data = [input() for i in range(20)] joined_data = ''.join(data) i = 0 max_list = [] while i < 987: if '0' in joined_data[i:i+13]: i += 1 continue else: product_number …

プロジェクトオイラー7

プロジェクトオイラーの7をpythonで解きました。 問題 10001番目の素数を求めよ。 mport math def primes(M): #エラトステネスのふるい prime_true_false = [1] * M prime_true_false[0] = 0 prime_true_false[1] = 0 for number in range(2, int(math.sqrt…

プロジェクトオイラー2A

プロジェクトオイラーの2の別解です。 友人にはやいやつを教えてもらったので実行してみました。 '''フィボナッチ数列の400万未満の偶数値の和''' a = 1 b = 1 c = 2 even_sum = 0 while a < 4000000: a = b b = c c = a + b if c % 2 ==0: even_sum += <s>a</s> c…

プロジェクトオイラー6

プロジェクトオイラーの問題6をpythonで解きました。 問題 1から100までの和の2乗- 1から100までの2乗和を計算する。 input_list = [number for number in range(1, 101)] #1から100までの数字のリスト sumsquared = int(sum(input_list) ** 2) #1から100ま…

プロジェクトオイラー4

プロジェクトオイラーの問題4をpythonで解きました。 問題 3桁の自然数×3桁の自然数で回文数(palindrome)になる数字の中で、最も大きい数字を求めよ。 def palindrome(n): #palindrome関数 from collections import deque dq = deque(n) while len(dq) > 1: …

プロジェクトオイラー3

プロジェクトオイラーの問題3を解いてみました。問題 600851475143の素因数で最も大きい数字はなあに?最初に書いたコードはこうでした。 N = int(input()) #自然数N def primes(N): #自然数Nまでの素数のリストを作る prime_list = [2] i = 2 while i < N …

プロジェクトオイラー2

プロジェクトオイラーの2問目をpythonを使って解いてみました。 問題 フィボナッチ数列の値で4百万を超えない値の、偶数値の総和を求めよ。 下のMに4000000を代入すれば答えが出ます。 M = int(input()) #フィボナッチ数列の値の上限 def fibonacci(n): #フ…

プロジェクトオイラー1

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

テスト

def func(): print("Hello World")