- ベストアンサー
FORTRANでのプログラミングですが…。
FORTRANで素数のプログラミングをしているんですが、 最大値・最小値の取り方がわかりません…。 範囲は100~999で、やっているんですが、 わかる人がいれば、是非教えて欲しいです!!
- みんなの回答 (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 的な感じでやってみては。 データの個数、読み込むデータの組み込みをどうするか考えれば、あとは上記の使ってもらえればだせるのでは・・ がんばって下さい☆
その他の回答 (4)
- Tacosan
- ベストアンサー率23% (3656/15482)
たとえば, maxprime, minprime という変数を用意して (最初はどちらも 0 に初期化しておく), 素数が見付かったときに適宜設定する (minprime は 0 のときにのみ更新, maxprime は常に更新) のが簡単かな.
- Tacosan
- ベストアンサー率23% (3656/15482)
「何をやりたいのか」をもっと明確に書いたうえで, 「今どこまでできていて, 何ができていないのか」をプログラムと一緒に出した方が, 的確に回答できるんだけど.... 少なくとも, 普通の人は「素数のプログラミング」が何を意味するかわからない. 推測はできるけど.
- DT200
- ベストアンサー率38% (63/164)
プログラミング言語が違っても、アルゴリズムは共通。 って、ことでここを参考に... http://itpro.nikkeibp.co.jp/members/ITPro/ITBASIC/20001006/3/
お礼
解答ありがとうございます。 参考にしてみます^^
- PED02744
- ベストアンサー率40% (157/390)
素数の求め方はわかっているという事でしょうか? 総当りでするのなら、 たとえ「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 ここから出力された素数の最大値、最小値のみを出力するプログラムがわからないんですが…。
お礼
説明不足ですいません。 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までの素数が出力されるのはわかったんですが、 その出力された素数の最大値、最小値のみを表示する加筆がわからないのですが…。