Additive primes: Difference between revisions
Content deleted Content added
Added AppleScript. |
Not a robot (talk | contribs) Add BCPL |
||
Line 164: | Line 164: | ||
Additive primes 1-500: 54 |
Additive primes 1-500: 54 |
||
</pre> |
</pre> |
||
=={{header|BCPL}}== |
|||
<lang bcpl>get "libhdr" |
|||
manifest $( limit = 500 $) |
|||
let dsum(n) = |
|||
n=0 -> 0, |
|||
dsum(n/10) + n rem 10 |
|||
let sieve(prime, n) be |
|||
$( 0!prime := false |
|||
1!prime := false |
|||
for i=2 to n do i!prime := true |
|||
for i=2 to n/2 |
|||
if i!prime |
|||
$( let j=i+i |
|||
while j<=n |
|||
$( j!prime := false |
|||
j := j+i |
|||
$) |
|||
$) |
|||
$) |
|||
let additive(prime, n) = n!prime & dsum(n)!prime |
|||
let start() be |
|||
$( let prime = vec limit |
|||
let num = 0 |
|||
sieve(prime, limit) |
|||
for i=2 to limit |
|||
if additive(prime,i) |
|||
$( writed(i,5) |
|||
num := num + 1 |
|||
if num rem 10 = 0 then wrch('*N') |
|||
$) |
|||
writef("*N*NFound %N additive primes < %N.*N", num, limit) |
|||
$)</lang> |
|||
{{out}} |
|||
<pre> 2 3 5 7 11 23 29 41 43 47 |
|||
61 67 83 89 101 113 131 137 139 151 |
|||
157 173 179 191 193 197 199 223 227 229 |
|||
241 263 269 281 283 311 313 317 331 337 |
|||
353 359 373 379 397 401 409 421 443 449 |
|||
461 463 467 487 |
|||
Found 54 additive primes < 500.</pre> |
|||
=={{header|C++}}== |
=={{header|C++}}== |