Find squares n where n+1 is prime: Difference between revisions
Content added Content deleted
Alpha bravo (talk | contribs) |
Not a robot (talk | contribs) (Add COBOL) |
||
Line 220: | Line 220: | ||
{{out}} |
{{out}} |
||
<pre>1 4 16 36 100 196 256 400 576 676</pre> |
<pre>1 4 16 36 100 196 256 400 576 676</pre> |
||
=={{header|COBOL}}== |
|||
<lang cobol> IDENTIFICATION DIVISION. |
|||
PROGRAM-ID. SQUARE-PLUS-1-PRIME. |
|||
DATA DIVISION. |
|||
WORKING-STORAGE SECTION. |
|||
01 N PIC 999. |
|||
01 P PIC 9999 VALUE ZERO. |
|||
01 PRIMETEST. |
|||
03 DSOR PIC 9999. |
|||
03 PRIME-FLAG PIC X. |
|||
88 PRIME VALUE '*'. |
|||
03 DIVTEST PIC 9999V999. |
|||
03 FILLER REDEFINES DIVTEST. |
|||
05 FILLER PIC 9999. |
|||
05 FILLER PIC 999. |
|||
88 DIVISIBLE VALUE ZERO. |
|||
PROCEDURE DIVISION. |
|||
BEGIN. |
|||
PERFORM CHECK-N VARYING N FROM 1 BY 1 |
|||
UNTIL P IS GREATER THAN 1000. |
|||
STOP RUN. |
|||
CHECK-N. |
|||
MULTIPLY N BY N GIVING P. |
|||
ADD 1 TO P. |
|||
PERFORM CHECK-PRIME. |
|||
SUBTRACT 1 FROM P. |
|||
IF PRIME, DISPLAY P. |
|||
CHECK-PRIME. |
|||
IF P IS LESS THAN 2, MOVE SPACE TO PRIME-FLAG, |
|||
ELSE, MOVE '*' TO PRIME-FLAG. |
|||
PERFORM CHECK-DSOR VARYING DSOR FROM 2 BY 1 |
|||
UNTIL NOT PRIME OR DSOR IS GREATER THAN N. |
|||
CHECK-DSOR. |
|||
DIVIDE P BY DSOR GIVING DIVTEST. |
|||
IF DIVISIBLE, MOVE SPACE TO PRIME-FLAG.</lang> |
|||
{{out}} |
|||
<pre>0001 |
|||
0004 |
|||
0016 |
|||
0036 |
|||
0100 |
|||
0196 |
|||
0256 |
|||
0400 |
|||
0576 |
|||
0676</pre> |
|||
=={{header|Cowgol}}== |
=={{header|Cowgol}}== |