Find adjacent primes which differ by a square integer: Difference between revisions
Content added Content deleted
No edit summary |
No edit summary |
||
Line 4: | Line 4: | ||
<br>Find adjacents primes which difference '''(>36)''' is square integer under '''1,000,000''' |
<br>Find adjacents primes which difference '''(>36)''' is square integer under '''1,000,000''' |
||
<br><br> |
<br><br> |
||
=={{header|Python}}== |
|||
<lang python> |
|||
import math |
|||
print("working...") |
|||
limit = 1000000 |
|||
Primes = [] |
|||
oldPrime = 0 |
|||
newPrime = 0 |
|||
x = 0 |
|||
def isPrime(n): |
|||
for i in range(2,int(n**0.5)+1): |
|||
if n%i==0: |
|||
return False |
|||
return True |
|||
def issquare(x): |
|||
for n in range(x): |
|||
if (x == n*n): |
|||
return 1 |
|||
return 0 |
|||
for n in range(limit): |
|||
if isPrime(n): |
|||
Primes.append(n) |
|||
for n in range(2,len(Primes)): |
|||
pr1 = Primes[n] |
|||
pr2 = Primes[n-1] |
|||
diff = pr1 - pr2 |
|||
flag = issquare(diff) |
|||
if (flag == 1 and diff > 36): |
|||
print(str(pr1) + " " + str(pr2) + " diff = " + str(diff)) |
|||
print("done...") |
|||
</lang> |
|||
{{out}} |
|||
<pre> |
|||
working... |
|||
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 |
|||
done... |
|||
</pre> |
|||
=={{header|Ring}}== |
=={{header|Ring}}== |
Revision as of 13:09, 21 November 2021
Find adjacent primes which differ by a square integer is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.
- Task
Find adjacents primes which difference (>36) is square integer under 1,000,000
Python
<lang python> import math print("working...") limit = 1000000 Primes = [] oldPrime = 0 newPrime = 0 x = 0
def isPrime(n):
for i in range(2,int(n**0.5)+1): if n%i==0: return False return True
def issquare(x): for n in range(x): if (x == n*n): return 1 return 0
for n in range(limit):
if isPrime(n): Primes.append(n)
for n in range(2,len(Primes)):
pr1 = Primes[n] pr2 = Primes[n-1] diff = pr1 - pr2 flag = issquare(diff) if (flag == 1 and diff > 36): print(str(pr1) + " " + str(pr2) + " diff = " + str(diff))
print("done...") </lang>
- Output:
working... 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 done...
Ring
<lang ring> load "stdlib.ring" see "working..." + nl limit = 1000000 Primes = [] oldPrime = 0 newPrime = 0 x = 0
for n = 1 to limit
if isprime(n) add(Primes,n) ok
next
for n = 2 to len(Primes)
pr1 = Primes[n] pr2 = Primes[n-1] diff = pr1 - pr2 flag = issquare(diff) if flag = 1 and diff > 36 see "" + pr1 + " " + pr2 + " diff = " + diff + nl ok
next
see "done..." + nl
func issquare(x)
for n = 1 to sqrt(x) if x = pow(n,2) return 1 ok next return 0
</lang>
- Output:
working... 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 done...