【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言

FORTRANで素数のプログラミングをしているんですが、
最大値・最小値の取り方がわかりません…。
範囲は100~999で、やっているんですが、
わかる人がいれば、是非教えて欲しいです!!

A 回答 (5件)

read(5,*) N


Cデータの個数を読み込む
read(5,*) A
C最初のデータを読み込む
I=1
AMAX=A
C読み込んだデータの個数を1とし、最初のデータを最大値とする

10 read(5,*) A

I=I+1

if(A.GT.AMAX) AMAX=A
if(I.LT.N) go to 10

write(6,20) AMAX
20 format(1H ,'MAX=',F5.1)
stop
end
的な感じでやってみては。
データの個数、読み込むデータの組み込みをどうするか考えれば、あとは上記の使ってもらえればだせるのでは・・
がんばって下さい☆
    • good
    • 0

たとえば, maxprime, minprime という変数を用意して (最初はどちらも 0 に初期化しておく), 素数が見付かっ

たときに適宜設定する (minprime は 0 のときにのみ更新, maxprime は常に更新) のが簡単かな.
    • good
    • 0

「何をやりたいのか」をもっと明確に書いたうえで, 「今どこまでできていて, 何ができていないのか」をプログラムと一緒に出した方が, 的確に回答できるんだけど....


少なくとも, 普通の人は「素数のプログラミング」が何を意味するかわからない. 推測はできるけど.
    • good
    • 0
この回答へのお礼

説明不足ですいません。

program main
integer i, j
do i=100, 999
do j=2, i-1
if (mod(i, j) .eq. 0) then
goto 10
endif
enddo
write(*,*) i
10 continue
enddo
end

これで100~999までの素数が出力されるのはわかったんですが、
その出力された素数の最大値、最小値のみを表示する加筆がわからないのですが…。

お礼日時:2007/05/11 16:00

プログラミング言語が違っても、アルゴリズムは共通。


って、ことでここを参考に...

http://itpro.nikkeibp.co.jp/members/ITPro/ITBASI …
    • good
    • 0
この回答へのお礼

解答ありがとうございます。
参考にしてみます^^

お礼日時:2007/05/11 16:01

素数の求め方はわかっているという事でしょうか?



総当りでするのなら、
たとえ「100~999の範囲で・・・」と指定されていても
2、3,5,7,11、という風に、2から順に求めていくしかありません。
そして、100を超えた初めての素数が最小値となります。
そのまま1000を超えるまでの素数を順に求めていき、1000を超えたら、その直前に求めた素数が最大値となります。

この回答への補足

素数の求めかたはわかっています。
そのプログラムです。

program main
integer i, j
do i=100, 999
do j=2, i-1
if (mod(i, j) .eq. 0) then
goto 10
endif
enddo
write(*,*) i
10 continue
enddo
end

ここから出力された素数の最大値、最小値のみを出力するプログラムがわからないんですが…。

補足日時:2007/05/11 16:01
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報