/*******************************************************************************
* Name: Robert Sedgewick
* NetId: rs
* Precept: P255
*
* Description: Take a command-line argument N, which must be a positive
* integer. Then, draw an N-by-N grid of squares, where position
* (i, j) is black if i and j are relatively prime, and white
* otherwise.
*
* Dependencies: StdDraw.java, Part2.java
*
*****************************************************************************/
public class Part3 {
public static void main(String[] args) {
// input from command-line
int N = Integer.parseInt(args[0]);
// set scale to match area that we draw in
// (squares centered from (1,1) to (N,N) with radius 0.5)
StdDraw.setXscale(0.5, N+0.5);
StdDraw.setYscale(0.5, N+0.5);
// size of one cell (radius is 1/2 a square side)
double r = 0.5;
// loop through each possible x and y
for (int x = 1; x <= N; x++) {
for (int y = 1; y <= N; y++) {
// relatively prime?
if (Part2.gcf(x, y) == 1)
StdDraw.setPenColor(StdDraw.BLACK);
else
StdDraw.setPenColor(StdDraw.WHITE);
StdDraw.filledSquare(x, y, r);
}
}
}
}