2014年3月27日木曜日

基礎からのPython

最も基本的なプログラムで脳トレとpythonの基礎を復習してみる。
今日のお題は以下の2つ。


1. 任意の入力を受けて、その数値以下の素数をすべてダンプしてみよう

今回は、シンプルに「素数とはなにか」に忠実に実装するだけです。
「素数とは、1 と自分自身以外に正の約数を持たない自然数で、1 でない数のことである。」
プログラムしやすい形に言い換えると、2以上からその数より小さい自然数で割り切れない場合は素数であるって感じかな。

def isPrime(n):
    for i in range(2,n-1):
        if( n%i == 0 ):
            return False
    return True

2. 任意の入力を受けて、その項数分フィボナッチ数列をダンプしてみよう

数式で書くとこんなかんじか。
 f(n) = f(n-2) + f(n-1)    ( ただし、 f(1)=f(2)=1, n<=3 )

この式をそのまま書いちゃえばいいんです。

def fibonacci(n):
    # f(n) = f(n-2) + f(n-1), 3<=n, f(1) = 1, f(2) = 1
    if n <= 2:
        return 1
    
    return fibonacci(n-2) + fibonacci(n-1)
以上!寝る。

0 件のコメント:

コメントを投稿