sumsqint
by Ben Petschel
20 Jul 2009
(Updated 17 Aug 2009)
Finds all distinct ways of writing a number as the sum of squares, i.e. solve x^2+y^2=n for 0<=x<=y.
|
Watch this File
|
| File Information |
| Description |
Example:
sumsqint(1) % returns [0,1]
sumsqint(65) % returns [1,8;4,7]
sumsqint can work with large numbers if they are factored, e.g. solve x^2+y^2=(25e6)^2:
sumsqint(repmat(factor(25e6),1,2)) % returns 9x2 array
sumsqint works with variable precision integers if you have John D'Errico's Variable Precision Integer toolbox (20 July 2009 update) - see links below.
sumsqint(vpi(5)^100) % returns 51x2 vpi array
sumsqint(vpi(65)^100) % returns 5101x2 vpi array
The algorithm uses Gaussian integer factorization. See the help for more details.
|
| Acknowledgements |
The author wishes to acknowledge the following in the creation of this submission:
Variable Precision Integer Arithmetic
|
| MATLAB release |
MATLAB 7.8 (R2009a)
|
|
Tags for This File
|
| Everyone's Tags |
|
| Tags I've Applied |
|
| Add New Tags |
Please login to tag files.
|
| Updates |
| 17 Aug 2009 |
added support for factored inputs; fixed a bug in the handling of vpi numbers with prime factors larger than 100; added option to remember newly found gaussian prime factors. |
|
Contact us at files@mathworks.com