Refactoring My Intelligence

技術的/非技術的な雑記,備忘録等々

素数の列挙

プログラミングの定番課題の一つである,素数の列挙を自分で実装してみた.うちの会社のエンジニア志望の応募者にも課題として出題している.社員の自分が書けない(書いた事ない)というのはまずいかなと思い,30分くらいで書いてみた(効率はそれほど考慮してない).

python2.7で書いてみたけど,結構直感的にコードが書けるからやっぱりpython良いですね.

#!/usr/bin/env python
'''
 prints all prime numbers less than or equal to n
 usage:
   python thisfile.py n
'''
import sys
import math

numbers = []

def primenumbers(n):
    numbers.extend(range(1, n+1))

    for i in range(2, int(math.ceil(math.sqrt(n))) + 1):
        for j in numbers:
            if j != i and j % i == 0:
                numbers.remove(j)

if __name__ == "__main__":
    n = int(sys.argv[1])
    primenumbers(n)
    numbers.sort()
    for i in numbers:
        print i