Advertisement
Kaelygon

pythagorean gaussian primes

Nov 11th, 2024 (edited)
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.08 KB | None | 0 0
  1.  
  2. import math
  3. import sys
  4. from sympy import primerange, isprime
  5.  
  6. # Function to check if a number can be written as a sum of two squares
  7. def is_gaussian_integer(P):
  8.     solutions = []
  9.     for a in range(1, int(math.sqrt(P / 2))+1):
  10.         b_squared = P - a**2
  11.         b = int(math.sqrt(b_squared))
  12.         if a**2 + b**2 == P:
  13.             solutions.append((a, b))
  14.     return solutions
  15.  
  16. # Function to check if a number can form a Pythagorean triplet
  17. def is_pythagorean_triplet(P):
  18.     solutions = []
  19.     for c in range(1, int(math.sqrt(P**2 / 2))+1):
  20.         d_squared = P**2 - c**2
  21.         d = int(math.sqrt(d_squared))
  22.         if c**2 + d**2 == P**2:
  23.             solutions.append((c, d))
  24.     return solutions
  25.  
  26. # Main function to process both primes and composites, check both conditions
  27. def find_gaussian_pythagorean_numbers(limit):
  28.     result = []
  29.    
  30.     for P in range(1, limit + 1):
  31.        
  32.         # Check if P is a Gaussian prime
  33.         gaussian_solutions = is_gaussian_integer(P)
  34.        
  35.         if gaussian_solutions:
  36.             # Check if P^2 forms a Pythagorean triplet
  37.             pythagorean_solutions = is_pythagorean_triplet(P)
  38.             if pythagorean_solutions:
  39.                 result.append({
  40.                     'number': P,
  41.                     'is_prime': isprime(P),
  42.                     'gaussian': gaussian_solutions,
  43.                     'pythagorean_triplet': pythagorean_solutions
  44.                 })
  45.                
  46.     return result
  47.  
  48. result = find_gaussian_pythagorean_numbers(251)
  49.  
  50. integerStr=""
  51. primeStr=""
  52.  
  53. for entry in result:
  54.     prime_composite = "Prime" if entry['is_prime'] else "Composite"
  55.     print(f"{entry['number']} {prime_composite}")
  56.     print(f"  Pythagorean triplets (a^2 + b^2 = P^2): {entry['pythagorean_triplet']}")
  57.     print(f"  Sum of two squares (c^2 + d^2 = P): {entry['gaussian']}")
  58.    
  59.     integerStr+=str(entry['number'])+", "
  60.     if entry['is_prime']:
  61.         primeStr+=str(entry['number'])+", "
  62.      
  63. print("\n",end="")
  64.  
  65. print(f"OEIS A004431 {integerStr}\n")
  66.      
  67. print(f"OEIS A002144 {primeStr}\n")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement