### Infinite Spiral of Numbers (due 05 April 2013)

Consider the natural numbers laid out in a square spiral, with 1 occupying the center of the spiral. The central 11 x 11 subset of that spiral is shown in the table below.

 111 112 113 114 115 116 117 118 119 120 121 110 73 74 75 76 77 78 79 80 81 82 109 72 43 44 45 46 47 48 49 50 83 108 71 42 21 22 23 24 25 26 51 84 107 70 41 20 7 8 9 10 27 52 85 106 69 40 19 6 1 2 11 28 53 86 105 68 39 18 5 4 3 12 29 54 87 104 67 38 17 16 15 14 13 30 55 88 103 66 37 36 35 34 33 32 31 56 89 102 65 64 63 62 61 60 59 58 57 90 101 100 99 98 97 96 95 94 93 92 91

This spiral has several interesting features. The southeast diagonal has several prime numbers (3, 13, 31, 57, and 91) along it. The southwest diagonal has a weaker concentration of prime numbers (5, 17, 37) along it.

To construct the spiral we start with 1 at the center, with 2 to the right, and 3 below it, 4 to the left, and so on. A part of the problem for this assignment is to figure out the rule to fill the spiral for an arbirary size. Once you have that rule you can complete the rest of the assignment.

You will read your input from the file spiral.txt. You will hard code the name of your file in your program. The file will have just two lines. For example:

```57
42
```
The first line indicates the dimension of the square spiral. This number should be an odd number. If it is not then choose the dimension to be the next higher odd number. The second number must be in the range 1 and the square of the dimension. If the second number is not in that range, print an error message Number not in Range.

You will write the neigboring numbers of the second number in three lines. Each line will have three integers separated by a single white space. If the second number was 42, then this should be your output:

```72 43 44
71 42 21
70 41 20
```
If the second number was 64, then this should be your output:
```66 37 36
65 64 63
100 99 98
```

What if that second number was on the outer edge of the spiral, then print Number on Outer Edge. You will write the neigboring numbers of the second number in two / three lines. Each line will have two / three integers separated by a single white space. If the second number was 97, then should should be your output:
```Number on Outer Edge
63 62 61
98 97 96
```

The file that you will be turning in will be called Spiral.java. You will follow the standard Java coding convention that I have appended below. The file will have a header of the following form:

```/*
File: Spiral.java

Description:

Student Name:

Student UT EID:

Course Name: CS 312

Unique Number:

Date Created:

*/
```

You will follow the standard Java Coding Conventions. You can either view the HTML page or download the PDF or Postscript and print it out. There is a modification that I would like to make to the standard coding conventions. Please align the opening and closing braces vertically so that you can easily make out the blocks of code. For example:

```Do this:
if ( x > 5 )
{
a = b + c;
}

Not this:
if ( x > 5 ) {
a = b + c;
}

```

Use the turnin program to submit your Spiral.java file. We should receive your work by 11 PM on Friday, 05 April 2013. There will be substantial penalties if you do not adhere to the guidelines.

• You must submit the .java file and not the .class file.
• Your .java file should have the header with the proper documentation.
• You should be submitting your .java file through the web based turnin program. We will not accept files e-mailed to us.
• Compile and run your code on the command line.
• Your code must compile before submission.
• Here is the Grading Criteria.