Unprimeable numbers: Difference between revisions

Content added Content deleted
No edit summary
(Added 11l)
Line 51: Line 51:
:*   from the Adam Spencer book   (page 200):   ''Adam Spencer's World of Numbers''       (Xoum Publishing)
:*   from the Adam Spencer book   (page 200):   ''Adam Spencer's World of Numbers''       (Xoum Publishing)
<br><br>
<br><br>

=={{header|11l}}==
{{trans|Python}}

<lang 11l>V limit = 10'000'000
V is_prime = [0B] * 2 [+] [1B] * (limit - 1)
L(n) 0 .< Int(limit ^ 0.5 + 1.5)
I is_prime[n]
L(i) (n * n .< limit + 1).step(n)
is_prime[i] = 0B

F unprimeable(a)
I :is_prime[a]
R 0B
V d = 1
L d <= a
V base = (a I/ (d * 10)) * (d * 10) + (a % d)
I any((base .< base + d * 10).step(d).map(y -> :is_prime[y]))
R 0B
d *= 10
R 1B

F unprime(n)
[Int] r
L(a) 1..
I unprimeable(a)
r [+]= a
I r.len == n
L.break
R r

print(‘First 35:’)
print(unprime(35).map(i -> String(i)).join(‘ ’))

print("\nThe 600-th:")
print(unprime(600).last)
print()

V first = [0] * 10
V need = 10
L(p) 1..
I unprimeable(p)
V i = p % 10
I first[i] != 0
L.continue

first[i] = p
I --need == 0
L.break

L(v) first
print(L.index‘ ending: ’v)</lang>

{{out}}
<pre>
First 35:
200 204 206 208 320 322 324 325 326 328 510 512 514 515 516 518 530 532 534 535 536 538 620 622 624 625 626 628 840 842 844 845 846 848 890

The 600-th:
5242

0 ending: 200
1 ending: 595631
2 ending: 322
3 ending: 1203623
4 ending: 204
5 ending: 325
6 ending: 206
7 ending: 872897
8 ending: 208
9 ending: 212159
</pre>


=={{header|C}}==
=={{header|C}}==