Find adjacent primes which differ by a square integer: Difference between revisions

Content added Content deleted
(Added 11l)
Line 4: Line 4:
<br>Find adjacent primes under '''1,000,000''' whose difference '''(> 36)''' is a square integer.
<br>Find adjacent primes under '''1,000,000''' whose difference '''(> 36)''' is a square integer.
<br><br>
<br><br>

=={{header|11l}}==
<lang 11l>F primes_upto(limit)
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).step(n)
is_prime[i] = 0B
R enumerate(is_prime).filter((i, prime) -> prime).map((i, prime) -> i)

V primes = primes_upto(1'000'000)

F is_square(x)
R Int(sqrt(x)) ^ 2 == x

L(n) 2 .< primes.len
V pr1 = primes[n]
V pr2 = primes[n - 1]
V diff = pr1 - pr2
I (is_square(diff) & diff > 36)
print(pr1‘ ’pr2‘ diff = ’diff)</lang>

{{out}}
<pre>
89753 89689 diff = 64
107441 107377 diff = 64
288647 288583 diff = 64
368021 367957 diff = 64
381167 381103 diff = 64
396833 396733 diff = 100
400823 400759 diff = 64
445427 445363 diff = 64
623171 623107 diff = 64
625763 625699 diff = 64
637067 637003 diff = 64
710777 710713 diff = 64
725273 725209 diff = 64
779477 779413 diff = 64
801947 801883 diff = 64
803813 803749 diff = 64
821741 821677 diff = 64
832583 832519 diff = 64
838349 838249 diff = 100
844841 844777 diff = 64
883871 883807 diff = 64
912167 912103 diff = 64
919511 919447 diff = 64
954827 954763 diff = 64
981887 981823 diff = 64
997877 997813 diff = 64
</pre>


=={{header|ALGOL 68}}==
=={{header|ALGOL 68}}==
Line 60: Line 111:
997877 - 997813 = 64
997877 - 997813 = 64
</pre>
</pre>

=={{header|AWK}}==
=={{header|AWK}}==
<lang AWK>
<lang AWK>