2016-11-21 3 views
1

以下のコードでは、番号3から99のテキストファイルをインポートしています。どのように進行中のすべての素数でテキストファイルを生成することができます4gl

私は、指定された数字から素数を見つけるコードを部分的に書いています。

define variable a as integer. 

define variable b as integer. 

define variable i as integer initial 0. 


    INPUT FROM Value ("C:\src\New folder\bingo.txt"). 
    repeat : 

     IMPORT a. 
     b = a mod i. 
     if b=0 then 
     do: 
     if a=i then 
     do: 
      message " prime number"a view-as alert-box. 
     end. 
     else if a<>i then 
     do: 
      i=i + 1. 
      message " not prime number"a view-as alert-box. 

     end. 

     else if a < i then 
     do: 
      message "not prime number"a view-as alert-box. 
     end.  
     end. 
     END.  
     if b<>0 then 
     do:  
     i=i + 1.  
     message "b<>0"b view-as alert-box.  
     end. 
     end. 
    Output To Value("C:\src\New folder\even.txt")append. 
    export a space. 
    output close. 
    end. 
    end. 

私に助けてください。 to program

+0

2で除算可能かどうかを確認するだけでは不十分です。素数は1とそれ自身でのみ割り切れる! – Jensd

+0

はい、私はi値を増やそうとしています/ * i = i + 1 * /上記のコードで。私はそれをどこで増やすべきか分からない。 – sri

答えて

2

私は、機能や手順にプライムチェックを格納する方が意味があると思います。このプライムチェックは完璧である必要はありませんが、これらの条件では機能します。

また、インとアウトプットの両方で作業する場合は、ストリームを定義して使用することをお勧めします。

DEFINE VARIABLE a AS INTEGER  NO-UNDO. 

DEFINE VARIABLE b AS INTEGER  NO-UNDO. 
DEFINE STREAM strIn. 
DEFINE STREAM strOut. 

FUNCTION isPrime RETURNS LOGICAL (INPUT iNum AS INTEGER): 

    DEFINE VARIABLE iDiv AS INTEGER  NO-UNDO. 

    DO iDiv = 2 TO INTEGER(SQRT(iNum)): 
     IF iNum MOD iDiv = 0 THEN 
      RETURN FALSE. 
    END. 

    RETURN TRUE. 
END. 

OUTPUT STREAM strOut TO VALUE ("c:\temp\primes.txt"). 
INPUT STREAM strIn FROM Value ("C:\temp\bingo.txt"). 
repeat : 

    IMPORT STREAM strIn a. 

    IF isPrime(a) THEN DO: 
     /*MESSAGE "prime number" a view-as alert-box. */ 
     PUT STREAM strOut UNFORMATTED a SKIP. 
    END. 
    ELSE DO: 
     /*MESSAGE "not prime number" a view-as alert-box. */ 
    END.  

END. 
INPUT STREAM strIn CLOSE. 
OUTPUT STREAM strOut CLOSE. 
+0

ありがとうございます@ Jensd – sri

+1

@sri私はupvoteと受け入れを好む前に、いつでもありがとう! :) – Jensd

関連する問題