Almost prime: Difference between revisions
Content added Content deleted
(Almost prime in various dialects BASIC (Chipmunk Basic, Run BASIC and True BASIC)) |
(add RPL) |
||
Line 4,182: | Line 4,182: | ||
k = 4: 16 24 36 40 54 56 60 81 84 88 |
k = 4: 16 24 36 40 54 56 60 81 84 88 |
||
k = 5: 32 48 72 80 108 112 120 162 168 176 |
k = 5: 32 48 72 80 108 112 120 162 168 176 |
||
</pre> |
|||
=={{header|RPL}}== |
|||
{{trans|FreeBASIC}} |
|||
{{works with|Halcyon Calc|4.2.8}} |
|||
{| class="wikitable" |
|||
! RPL code |
|||
! Comment |
|||
|- |
|||
| |
|||
≪ → k |
|||
≪ 0 1 SF |
|||
2 3 PICK '''FOR''' j |
|||
'''WHILE''' OVER j MOD NOT '''REPEAT''' |
|||
'''IF''' DUP k == '''THEN''' 1 CF OVER 'j' STO '''END''' |
|||
1 + |
|||
SWAP j / SWAP |
|||
'''END''' |
|||
'''NEXT''' |
|||
k == 1 FS? AND SWAP DROP |
|||
≫ ≫ ''''KPRIM'''' STO |
|||
≪ 5 1 '''FOR''' k |
|||
{ } 2 |
|||
'''WHILE''' OVER SIZE 10 < '''REPEAT''' |
|||
'''IF''' DUP k '''KPRIM''' '''THEN''' SWAP OVER + SWAP '''END''' |
|||
1 + '''END''' DROP |
|||
-1 '''STEP''' |
|||
≫ ''''TASK'''' STO |
|||
| |
|||
''' KPRIM''' ''( n k -- boolean ) '' |
|||
Dim f As Integer = 0 |
|||
For i As Integer = 2 To n |
|||
While n Mod i = 0 |
|||
If f = k Then Return false |
|||
f += 1 |
|||
n \= i |
|||
Wend |
|||
Next |
|||
Return f = k |
|||
End Function |
|||
|} |
|||
{{out}} |
|||
<pre> |
|||
5 : { 32 48 72 80 108 112 120 162 168 176 } |
|||
4 : { 16 24 36 40 54 56 60 81 84 88 } |
|||
3 : { 8 12 18 20 27 28 30 42 44 45 } |
|||
2 : { 4 6 9 10 14 15 21 22 25 26 } |
|||
1 : { 2 3 5 7 9 11 13 17 19 23 29 } |
|||
</pre> |
</pre> |
||