Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the fastest algorithm to represent a prime as sum of two squares?

I could use two loops to check for all combinations of two integers that less than p prime, but it's very inefficient. Is there a better algorithm to approach this problem? Any idea?

Where p mod 4 = 1.

Thanks,

like image 439
Chan Avatar asked Oct 23 '25 20:10

Chan


2 Answers

You can try using the Hermite-Serret algorithm.

You can also find a good list of algorithms on this math.se page: https://math.stackexchange.com/questions/5877/efficiently-finding-two-squares-which-sum-to-a-prime

See especially, Robin Chapman's answer: https://math.stackexchange.com/questions/5877/efficiently-finding-two-squares-which-sum-to-a-prime/5883#5883

You don't need to search for all combinations. A rough outline of a simple naive implementation would be:

  • Consider each integer i in the range [1..trunc(sqrt(p))].
  • Calculate sqrt(p-i^2) and check if it is an integer. If so you are done.
  • If not continue to the next i.

Would this suffice for your needs? It will work fine for relatively small p, but obviously would be slow for the sort of large primes used in cryptography.

like image 43
David Heffernan Avatar answered Oct 26 '25 18:10

David Heffernan



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!