エラトステネスのふるい

 nmax以下の素数を求めるプログラム。入力した数が素数かどうか判断するプログラムは、作れなかった。以下のプログラムを実行すると、簡単に20000個ほどの素数の一覧が出来上がる。パスワードなんかに使えるかな。

program sosu
implicit none
integer i,j,k,n,nmax
parameter(nmax=1000000)
logical prime(nmax)
integer plist(nmax)
data prime/nmax*.true./

write(*,*)'Input an integer(2 < N < ',nmax,')'
read(*,*)n
if(n.gt.nmax)then
write(*,*)'n must be less than ',nmax
stop
endif


k=1
plist(k)=2

do i=3,n,2
if(prime(i))then
k=k+1
plist(k)=i
do j=i,n,i
prime(j)=.false.
enddo
endif
enddo

write(*,*)k,' primes found'
write(*,'(5I8)')(plist(i),i=1,k)

end program sosu

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック