Special neighbor primes: Difference between revisions
Content added Content deleted
(add gwbasic) |
(add tinybasic) |
||
Line 747: | Line 747: | ||
Found 103611 special neighbour primes < 10^7 |
Found 103611 special neighbour primes < 10^7 |
||
</pre> |
</pre> |
||
=={{header|Tiny BASIC}}== |
|||
<lang tinybasic> REM B = SECOND OF THE NEIGBOURING PRIMES |
|||
REM C = P + B - 1 |
|||
REM I = index variable |
|||
REM P = INPUT TO NEXTPRIME ROUTINE AND ISPRIME ROUTINE, also first of the two primes |
|||
REM T = Temporary variable, multiple uses |
|||
REM Z = OUTPUT OF ISPRIME, 1=prime, 0=not |
|||
LET P = 1 |
|||
20 LET P = P + 2 |
|||
IF P > 100 THEN END |
|||
GOSUB 100 |
|||
IF Z = 0 THEN GOTO 20 |
|||
GOSUB 120 |
|||
IF B > 100 THEN END |
|||
LET T = P |
|||
LET P = P + B - 1 |
|||
GOSUB 100 |
|||
LET C = P |
|||
LET P = T |
|||
IF Z = 0 THEN GOTO 20 |
|||
PRINT P," + ",B," - 1 = ", C |
|||
GOTO 20 |
|||
100 REM PRIMALITY BY TRIAL DIVISION |
|||
LET Z = 1 |
|||
LET I = 2 |
|||
110 IF (P/I)*I = P THEN LET Z = 0 |
|||
IF Z = 0 THEN RETURN |
|||
LET I = I + 1 |
|||
IF I*I <= P THEN GOTO 110 |
|||
RETURN |
|||
120 REM next prime after P |
|||
IF P < 2 THEN LET B = 2 |
|||
IF P = 2 THEN LET B = 3 |
|||
IF P < 3 THEN RETURN |
|||
LET T = P |
|||
130 LET P = P + 1 |
|||
GOSUB 100 |
|||
IF Z = 1 THEN GOTO 140 |
|||
GOTO 130 |
|||
140 LET B = P |
|||
LET P = T |
|||
RETURN</lang> |
|||
{{out}}<pre> |
|||
3 + 5 - 1 = 7 |
|||
5 + 7 - 1 = 11 |
|||
7 + 11 - 1 = 17 |
|||
11 + 13 - 1 = 23 |
|||
13 + 17 - 1 = 29 |
|||
19 + 23 - 1 = 41 |
|||
29 + 31 - 1 = 59 |
|||
31 + 37 - 1 = 67 |
|||
41 + 43 - 1 = 83 |
|||
43 + 47 - 1 = 89 |
|||
61 + 67 - 1 = 127 |
|||
67 + 71 - 1 = 137 |
|||
73 + 79 - 1 = 151</lang> |
|||
=={{header|Wren}}== |
=={{header|Wren}}== |