Honaker primes: Difference between revisions
Content added Content deleted
Alextretyak (talk | contribs) (Added 11l) |
|||
Line 22: | Line 22: | ||
=={{header|11l}}== |
|||
{{trans|Python}} |
|||
<syntaxhighlight lang="11l"> |
|||
F primes_up_to_limit(Int limit) |
|||
[Int] r |
|||
I limit >= 2 |
|||
r.append(2) |
|||
V isprime = [1B] * ((limit - 1) I/ 2) |
|||
V sieveend = Int(sqrt(limit)) |
|||
L(i) 0 .< isprime.len |
|||
I isprime[i] |
|||
Int p = i * 2 + 3 |
|||
r.append(p) |
|||
I i <= sieveend |
|||
L(j) ((p * p - 3) >> 1 .< isprime.len).step(p) |
|||
isprime[j] = 0B |
|||
R r |
|||
F digitsum(num) |
|||
‘ Digit sum of an integer (base 10) ’ |
|||
R sum(String(num).map(c -> Int(c))) |
|||
F generate_honaker(limit = 5'000'000) |
|||
‘ Generate the sequence of Honaker primes with their sequence and primepi values ’ |
|||
V honaker = enumerate(primes_up_to_limit(limit)).filter((i, p) -> digitsum(p) == digitsum(i + 1)).map((i, p) -> (i + 1, p)) |
|||
R enumerate(honaker).map((hcount, pp) -> (hcount + 1, pp[0], pp[1])) |
|||
print(‘First 50 Honaker primes:’) |
|||
L(p) generate_honaker() |
|||
I p[0] < 51 |
|||
print(f:‘{String(p):<16}’, end' I p[0] % 5 == 0 {"\n"} E ‘’) |
|||
E I p[0] == 10'000 |
|||
print(f:"\nThe 10,000th Honaker prime is the {commatize(p[1])}th one, which is {commatize(p[2])}.") |
|||
L.break |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
First 50 Honaker primes: |
|||
(1, 32, 131) (2, 56, 263) (3, 88, 457) (4, 175, 1039) (5, 176, 1049) |
|||
(6, 182, 1091) (7, 212, 1301) (8, 218, 1361) (9, 227, 1433) (10, 248, 1571) |
|||
(11, 293, 1913) (12, 295, 1933) (13, 323, 2141) (14, 331, 2221) (15, 338, 2273) |
|||
(16, 362, 2441) (17, 377, 2591) (18, 386, 2663) (19, 394, 2707) (20, 397, 2719) |
|||
(21, 398, 2729) (22, 409, 2803) (23, 439, 3067) (24, 446, 3137) (25, 457, 3229) |
|||
(26, 481, 3433) (27, 499, 3559) (28, 508, 3631) (29, 563, 4091) (30, 571, 4153) |
|||
(31, 595, 4357) (32, 599, 4397) (33, 635, 4703) (34, 637, 4723) (35, 655, 4903) |
|||
(36, 671, 5009) (37, 728, 5507) (38, 751, 5701) (39, 752, 5711) (40, 755, 5741) |
|||
(41, 761, 5801) (42, 767, 5843) (43, 779, 5927) (44, 820, 6301) (45, 821, 6311) |
|||
(46, 826, 6343) (47, 827, 6353) (48, 847, 6553) (49, 848, 6563) (50, 857, 6653) |
|||
The 10,000th Honaker prime is the 286,069th one, which is 4,043,749. |
|||
</pre> |
|||
=={{header|ALGOL 68}}== |
=={{header|ALGOL 68}}== |