見出し画像

お気楽プログラミング!2

もう少し本格的に、コードを書いて実行する形で楽しそうなことをしてみましょう。

本格的なコードを実行するにはGoogleのColaboratory(Colab)を使って行きます。このwebエディタはGoogleのアカウントがあれば制限がありますが、自由に使うことができます。

うるう年

うるう年を簡単に判定できるものを作ります。以下丁寧に説明されているサイトです。

現在私たちが使っている暦は「グレゴリオ暦」といい、世界中の国で使われています。

グレゴリオ暦法では、うるう年を次のように決めています。

(1)西暦年号が4で割り切れる年をうるう年とする。

(2)(1)の例外として、西暦年号が100で割り切れて400で割り切れない年は平年とする。

https://www.nao.ac.jp/faq/a0306.html
year = int(input('西暦: '))

if year % 100 == 0 and year % 400 != 0:
    print("平年")
elif year % 4 == 0:
    print("うるう年")
else:
    print("平年")

これを実行すると

とでてくるので"2024"と入れてreturnすると"うるう年"とでてきます。

year = int(input('西暦: '))

これを実行することで変数yearに自分の好きな数字が入れることができるようになります。

if year % 100 == 0 and year % 400 != 0:
    print("平年")
elif year % 4 == 0:
    print("うるう年")

で判定します。まず100で割り切れて、同時に、400で割り切れない数字かどうか判定します。

if year % 100 == 0 and year % 400 != 0:

これが満たされるものが"平年"となります。
さらに

elif year % 4 == 0:
    print("うるう年")

4で割って、割り切れれば"うるう年"となります。

素数

次に素数の判定のプログラムです。以下のサイトを参考にさせていただきました。

def trial(n: int):
    assert n > 1
    i = 2
    while i < n:
        if n%i == 0:
            return False
        i+=1
    return True

一番単純な素数の判定プログラムです。2以上の数でひたすら割っていき、割れなければ素数、割れれば合成数ということです。

 while i < n:

while文を使って繰り返しを指定します。"i" の数字を2から始めて知りたい数字"n"まで変化させて割って行きます。
判定は単純で

if n%i == 0:
       return False

割り切れれれば"False"素数ではないということになります。

力技のやり方ですが単純で分かりやすいです。エラステネスのふるいなどのアルゴリズムを使うと効率的に処理できます。

trial(4)

として実行すると"False"と素数ではないとでてきます。引数にいろんな数字を入れて試すことができます。

参考

簡単な実装ですが便利なツールとして使うこともできます。

この記事が気に入ったらサポートをしてみませんか?