- 締切済み
おしえてください。
cobol言語のスクールにかよっていますがわからないのでおしえてください。 素数判定プログラムなのですが(ある数が割り切れたとき、素数ではない 割り切れなければ素数) 途中から PERFOM KEISAN UNTIL OWARI = "N". DISPLAY SPACE. STOP RUN. KEISAN. MOVE SPACE TO H-ATAI. ACCEPT H-ATAI AT 0436. MOVE H-ATAI TO ATAI. PERFORM KEISAN2 VARYING N FROM 2 BY 1 UNTIL N > ATAI - 1. <==ここに1回でも割り切れたとき DISPLAY KOTAE AT 0535. 判定する言語をおしえて ACCEPT OWARI AT 1045. この文だと全部「素数」と、 KEISAN2. 出てしまうのですが。 DIVIDE ATAI BY N GIVING HENSU REMAINDER AMARI. IF AMARI = 0 MOVE "素数ではありません" TO KOTAE ELSE MOVE "素数です"TO KOTAT. お願いします。
- みんなの回答 (6)
- 専門家の回答
関連するQ&A
- VBのユーザーフォームでの素数のカウント
自分でVBのユーザーフォームを使って2から指定の数までの素数がいくつあるかを求めようと思ったのですが、個数の求め方がなかなかうまくいきません。 とりあえず自分ではここまで作ってみたのですが・・・ Private Sub CommandButton2_Click() N = Val(TextBox1) For k = 2 To N kaisuu = 0 For i = 2 To N - 1 amari = N Mod i If amari = 0 Then kaisuu = kaiuu + 1 Next i If kaisuu = 0 Then kosuu = kosuu + 1 If kosuu = 0 Then TextBox3 = "0" Else TextBox3 = kosuu.Val End If Next k End Sub 自分でも探しているのですがなかなか難しいです。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- JAVAで素数判定
JAVAの勉強をしてます 練習問題で、素数判定のプログラムをしているのですが。 1~14までの判定はうまくいきますが、15の判定の時に素数であると表示されて困ってます。どなたかわかりませんか? //読み込んだ数字 n が 15 の場合 if(n == 1) System.out.println("素数ではありません。"); if(n == 2) System.out.println("素数です。"); for (int i = 2; i < n; i++) { if (n % i == 0) { System.out.println("素数ではありません。"); break; } else { System.out.println("素数です。"); break; } } --結果---------------------------------------------- 素数です
- ベストアンサー
- Java
- COBOLプログラム2
このプログラムは売り上げファイルを読み、最初に見出し印刷し、1レコード1行で印刷し、最後に数量、金額の合計を印刷するプログラムです。 どこが間違ってるでしょうか。教えてください。 PROCEDURE__DIVISION. HAJIME. ___OPEN INPUT IN-F OUTPUT OU-F . ___MOVE SHOHIN-CODE TO SHOHIN. ___MOVE SURYOU TO SURYOU. ___MOVE DENPYO-NO TO DENPYO-NO. ___MOVE KINGAKU-W TO KINGAKU. ___WRITE OU-R FROM MIDASHI. NX.__READ IN-F AT END GO TO OWARI. ___MOVE SPACE TO OU-R. ___MOVE CORRESPONDING IN-R TO MEISAI. ___COMPUTER KINGAKU-L=SURYOU OF IN-R*TANKA OF IN-R. ___MOVE KINGAKU-L TO KINGAKU. ___WRITE OU-R FROM MEISAI. ___COMPUTER SURYOU-W=SURYOU-W+SURYOU. ___COMPUTER KINGAKU-W=KINGAKU-W+KINGAKU. ___GO TO NX. OWARI. ___MOVE SURYOU-W TO G-SURYOU. ___MOVE KINGAKU-W TO G-KINGAKU. ___WRITE OU-R FROM GOKEI. ___CLOSE IN-F OU-F. ___STOP RUN.
- 締切済み
- その他(プログラミング・開発)
- この素数の規則性は既知ですか?
奇数 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51 奇数のうち素数じゃないものには分かりやすい規則性がある 3^3から始まり3x2間隔 5^5から始まり5x2間隔 7^7から始まり7x2間隔 9^7から始まり9x2間隔 つまりn番目の周期の開始位置が(2n+1)^2で、 間隔が2(2n+1)なのです。 この周期に基づき素数判定プログラムを書いてみましたが、2万くらいまで調べても正しく動作しました。 (信頼されている素数判定プログラムと同じ結果を返しました) この規則性は既知でしょうか? 3以上の素数は全て奇数ですから、 奇数のうちの素数じゃないものに規則があるということは、 素数の規則がわかったと言っても良いと思うのですが、 まあ、もともと素数生成アルゴリズムはたくさんありますね。 数学者が素数について議論していると言われますが数学者が求めている素数の規則性とはどんなものなのでしょうか?
- 締切済み
- 数学・算数
- 新しい家に引っ越すまで後2週間・・・ 英語で
「新しい家に引っ越す日まで後2週間ここにいなければいけない。」 を英語に訳したいのですが、これであってますでしょうか。 I must stay at here for just two weeks until the day which I am going to move to new home. 添削よろしくお願いします!!! 新しい家に引っ越すまであと2週間もここに・・というちょっと残念な感じを表現したいのです。 どうぞよろしくお願いいたします。
- ベストアンサー
- 英語
- 2から120以下の素数を求める
2以上120以下の素数を全て求めて表示するプログラムを書きなさい。 素数か否かの判定には以下のアルゴリズム[処理手順] (2 <= n <= 120のときのみ有効)を用いなさい。 i) nが2, 3, 5, 7, 11のうちのどれかと等しければNは素数 ii) nが2, 3, 5, 7, 11の全てに対して割切れなければNは素数 iii) それ以外(iもiiも不成立)のとき、Nは素数ではない。 *) 2, 3, 5, 7, 11は最初に出力してしまい、 n=12から120までをfor文のなかで判定すればよい。 というC言語の課題です。 自分でプログラムを作ったのですが、うまくできません・・。 if文が働いてないようなのですが、どこが間違っているのでしょうか? #include <stdio.h> int main(void) { int i; printf("2\n"); printf("3\n"); printf("5\n"); printf("7\n"); printf("11\n"); for (i=12;i<=120;i++){ if (i%2!=0 || i%3!=0 || i%5!=0 || i%7!=0 || i%11!=0){ printf("%d\n",i); } else{ printf(""); } } printf( "\n" ); return 0; }
- ベストアンサー
- C・C++・C#
- 1から入力された数までの素因数を数えるプログラム
こんにちは 1から入力された数(N)までの素因数を数えるプログラムを 作成したいのですが、うまくいきません。 たとえば10と入力すると2と表示されてしまいます。 どこがおかしいのかわかりません。 どなたか教えてください。おねがいします。 N個の配列を用意し、1を入れていき、 素因数でない数の要素には0をいれて、 最終的に1が入っている配列の数を数えて1~Nまでの 素因数の数を数える方法を考えています。 Dim M As Integer Dim N As Integer Dim i As Integer Dim j As Integer Dim sum As Integer Dim L(1000) As Double N = Val(TextBox1) M = N i = 1 Do Until i > N L(i) = 1 i = i + 1 Loop i = 2 Do Until i > M j = i * 2 Do Until j > M L(j) = 0 j = j + 1 Loop i = i + 1 Loop sum = 0 For i = 2 To N If L(i) = 1 Then sum = sum + 1 End If Next i
- ベストアンサー
- Visual Basic
- 素数は何%くらいあるか
高1です。 素数が何%くらいあるかを調べてみようと思い、次のようなBasicプログラムを作りました。 -------------------------------------------------------- 100 cls:count=1:print 2;" ";100;"%";" ";count 110 for i=3 to 10000000 120 n=i 130 if (n - int(n/2)*2) = 0 then goto 220 140 for j = 3 to sqr(n) step 2 150 if (n - j * int(n/j) ) = 0 then goto 220 160 end if 170 next j 180 count=count + 1 190 p = count*100 / (n - 1) 200 percent = (int(p * 10))/10 210 print n;" ";percent;" ";"%";" ";count 220 next i 230 end -------------------------------------------------------- 【各行の意味】 100 2は素数 110 3から一千万まで調べる 130 偶数は除外 140~ 素数判定(自然数nが√n以下のすべての数で割りきれなければ、nは素数である、を利用) 180 素数の個数をカウントする 190~ 素数が何%あるかを少数第一位まで求める。少数第二位以下は切り捨て。 210 素数、%、素数の個数 を表示 -------------------------------------------------------- 【結果】 千までに素数は168個、16.8% 一万までに素数は1229個、12.3% 十万までに素数は9592個、9.5% 百万までに素数は78498個、7.8% 一千万までに素数は664579個、6.6% -------------------------------------------------------- そこで質問ですが、 1.素数の割合は収束する傾向にあると言えるでしょうか? 2.プログラムに間違いがありましたら、教えていただけないでしょうか。 3.素数の割合に関するわかりやすい本(高校生でも理解できるようなもの)などがありましたら、教えていただけないでしょうか。 ちなみに、これは学校の宿題や課題ではありません。純粋に個人的な興味で調べたものですが、何か結論みたいなものが導けたら来年の自由研究に出してみたいと思っています。 使用機種:Mac 使用ソフト:chipmunk basic(フリーソフト) 機種が非力なので1億や10億といった計算はやっていません。
- ベストアンサー
- 数学・算数
- COBOL OCCURSで指定したデータの参照の仕方
IBM COBOL でプログラムを作成しています。 初歩的な質問で恥ずかしいのですが、どなたか教えていただけますか。 まず、以下のようなTABLEを定義しました。 01 A-TABLE. 03 B OCCURS 100. 05 C PIC X(08) VALUE SPACE. 05 D PIC X(02) VALUE SPACE. 05 E PIC X(08) VALUE SPACE. 05 F PIC X(05) VALUE SPACE. 05 G PIC X(05) VALUE SPACE. 05 H PIC X(05) VALUE SPACE. その後に、INPUTファイルからREADしたデータのうち、必要な部分だけを 該当のTABLEに添え字を使用して代入していく処理を作成したいと思っています。 その場合に、上記の「C」~「H」に代入するにはどうすればよいでしょうか? また後続の処理で直接その値を参照したいのですが、どうすれば良いでしょうか? 私の考えられる範囲で以下のようにプログラムしましたが、 実行時に「OUTSIDE THE REGION OF THE TABLE.」というようなエラーが出力されてしまいました。 MOVE I TO C(IDX1) MOVE J TO D(IDX1) MOVE K TO E(IDX1) MOVE L TO F(IDX1) MOVE M TO G(IDX1) MOVE N TO H(IDX1) どなたかよろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- 素数の分類と無限性に関して。以前質問させていただいたことの延長になりま
素数の分類と無限性に関して。以前質問させていただいたことの延長になります。 ※^は乗数の意味です。 8n+1型の素数が無限に存在することの証明 原始根の存在(素数 p を法とする整数環 Z/pZ の乗法群が位数 p - 1 の巡回群であること)を使う。 x を整数とする時x^4 + 1 の奇素数因子を p とする。 x^4 ≡ - 1 (mod. p) より、両辺を2乗することでx^8≡1となる。 x の p を法とする整数環 Z/pZ の乗法群での位数は 8 で有るから、 p ≡ 1 (mod. 8) となる。ここで、 p ≡ 1 (mod. 8) となる素数が有限個であったとする時、その総乗積を P として、 (2P)^4 + 1 の奇素数因子を考えると矛盾が出る。 私は2PをX"とおいて上と同様に考えました。 同じ方法を用いることで証明することはできたのですが、 この証明の中で用いている「位数は 8 で有るから、 p ≡ 1 (mod. 8) となるの部分に関して ラグランジュの定理 位数nの有限郡Gの任意の部分郡Hの位数はGの位数の約数である を用いた場合、GとHに当たる部分はどこになるのでしょうか。今の段階では、nがp-1にあたり、Hの位数が8と考えています。pが素数で、8はp-1の約数になるとの考えは当っているでしょうか・・? よろしくお願いします。
- ベストアンサー
- 数学・算数
お礼
ありがとうございます。みなさんのプログラムを参考にスクールに持っていったのですが答えがあまりにもレベルが高くて先生に「自分でつくったものではないね」 と言われました(笑)。 DISPLAY SPACE. DISPLAY "値を入力" AT 0330. DISPLAY "[ ]" AT 0435. DISPLAY "結果"AT 0630. DISPLAY "続ける=>[ ]"1030. DISPLAY " 続ける…Y 終了…N" AT 1130. PERFOM KEISAN UNTIL OWARI = "N". DISPLAY SPACE. STOP RUN. KEISAN. MOVE SPACE TO H-ATAI. ACCEPT H-ATAI AT 0436. MOVE H-ATAI TO ATAI. PERFORM KEISAN2 VARYING N FROM 2 BY 1 UNTIL N > ATAI - 1. DISPLAY KOTAE AT 0535. ACCEPT OWARI AT 1045. KEISAN2. DIVIDE ATAI BY N GIVING HENSU REMAINDER AMARI. IF AMARI = 0 MOVE "素数ではありません" TO KOTAE MOVE ATAI TO N <=ここに値を入力することを先生はおしえてくれました。 ELSE MOVE "素数です"TO KOTAE. この文を使ってもう一つ質問です。 「入力した値が素数ではないとき、入力した一番近い素数を検出」 たとえば10を入れると7、6をいれると5、12をいれると11と言った感じ なのですが、自分の考えではKEISAN2で素数か素数でないかを判定 できたのでPERFORM KEISAN3を作製して PERFORM KEISAN2 VARYING N FROM 2 BY 1 UNTIL N > ATAI - 1. PERFORM KEISAN3 VARYING N FROM 2 BY 1 UNTIL N > ATAI - 1. DISPLAY KOTAE AT 0535. ACCEPT OWARI AT 1045. KEISAN2. DIVIDE ATAI BY N GIVING HENSU REMAINDER AMARI. IF AMARI = 0 MOVE "素数ではありません" TO KOTAE MOVE ATAI TO N ELSE MOVE "素数です"TO KOTAE. KEISAN3. DIVIDE ATAI BY GIVING HENSU REMAINDER AMARI. ここから分かりません。素数ではない数、たとえば10を入力して 8や9がKEISAN3にもどって7は10に一番近い素数なので表示したい のですが…。 お願いしますこのプログラム文に付き合ってください