--/--/--

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2007/04/11

[Python]素数を求めるスクリプト色々

mixiのPythonコミュニティで盛り上がってたので自分でも作ってみた。

prime.py

#!/usr/bin/python
#-*- coding:utf-8 -*-

a = [2]

#配列を使いまわす用
def clear():
a = [2]

#基本(自作)
def prime1(n=100):
for e in range(3,n):
for i in a:
if e % i == 0:
break
else:
a.append(e)
print a

#filter + lambda(投稿されてたやつ)
def prime2(n=100):
for e in xrange(3,100,2):
if not filter(lambda x: e % x == 0, a):
a.append(e)
print a

#リスト内包表記(上のやつを元にした)
def prime3(n=100):
for e in xrange(3,n+1,2):
if not [i for i in a if e % i == 0]:
a.append(e)
print a

prime1()
clear()

prime2()
clear()

prime3()
clear()

結果

$ python prime.py
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

色々やり方があるもんだね。たぶんまだまだあると思う。自分一人じゃ2番目のは思い付かなかった。なんか勉強する気が起きた。

スポンサーサイト

comment

by mixi大好き : 2007/04/12 00:15
mixiに今はまっています


mixiの事をもっと知ろうと思ってサイト作ってしまいました


もしよろしければ一回来て見てくださいね

post




上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。