Problem Statement
You will be given rSquare, the square of the radius of a circle. You are to return the number of lattice points (points with integer coordinates) that lie on the circumference of a circle with this radius centered at the origin of the (cartesian) coordinate system.
Definition
- Class:
- GridPointsOnCircle
- Method:
- countPoints
- Parameters:
- int
- Returns:
- int
- Method signature:
- int countPoints(int rSquare)
- (be sure your method is public)
Constraints
- rSquare will be between 1 and 2,000,000,000, inclusive.
Examples
1
Returns: 4
A circle with radius 1 centered at the origin goes through 4 lattice points: (1,0), (0,1), (-1,0) and (0,-1).
25
Returns: 12
A circle with radius 5 goes through the points (+/-3, +/-4), (+/-4, +/-3), (0, +/-5) and (+/-5, 0) (12 points).
3
Returns: 0
No lattice point is at distance sqrt(3) from the origin.
12
Returns: 0
44
Returns: 0
93
Returns: 0
10227
Returns: 0
2
Returns: 4
4
Returns: 4
16
Returns: 4
18
Returns: 4
5
Returns: 8
10
Returns: 8
116
Returns: 8
738
Returns: 8
25
Returns: 12
50
Returns: 12
169
Returns: 12
289
Returns: 12
365
Returns: 16
14330
Returns: 16
52273
Returns: 16
625
Returns: 20
11250
Returns: 20
1025
Returns: 24
3757
Returns: 24
39182909
Returns: 24
9685
Returns: 32
718765
Returns: 32
204864885
Returns: 32
4225
Returns: 36
900601
Returns: 36
152500
Returns: 40
3338125
Returns: 40
432225
Returns: 48
112350825
Returns: 48
924545
Returns: 64
542249245
Returns: 64
912925
Returns: 72
23539050
Returns: 72
1384953986
Returns: 96
1054357525
Returns: 96
905656250
Returns: 112
1834007305
Returns: 128
835420885
Returns: 128
108561700
Returns: 144
795630625
Returns: 160
804594785
Returns: 192
1849385800
Returns: 192
1849385799
Returns: 0
1849385801
Returns: 32
2000000000
Returns: 40
1999967840
Returns: 0
1999967841
Returns: 12
1999967842
Returns: 8
2000000000
Returns: 40
1999967841
Returns: 12
1800000000
Returns: 36
2000000
Returns: 28
50
Returns: 12
200000000
Returns: 36
625
Returns: 20
1999999999
Returns: 0
125
Returns: 16
1999999924
Returns: 64
1650390625
Returns: 132
1
Returns: 4
25
Returns: 12
1999999882
Returns: 32
123454321
Returns: 12
500000000
Returns: 40
25000000
Returns: 36