Refactoring Code C#
using System;
namespace PrimeRefactoringCSharp
{
public class Primes
{
/** The default stopping point for primes */
public static long DEFAULT_STOP =
500L; // 4294967295L;
/** The first prime number */
public static int FP = 2;
static int MAX = 10000;
static void Main(string[] args)
{
long[] prime = new long[MAX];
long stop = DEFAULT_STOP;
if (args.Length == 1)
{
stop = long.Parse(args[0]);
}
prime[1] = FP; // P1 (ignore prime[0])
long n = FP + 1; // odd candidates
int j = 1; // numberFound
bool isPrime = true; // for 3
do
{
if (isPrime)
{
if (j == MAX - 1)
{
// Grow array dynamically if needed
long[] np = new long[MAX * 2];
Array.Copy(prime, 0, np, 0, MAX);
MAX *= 2;
prime = np;
}
prime[++j] = n; // P2
isPrime = false;
}
n += 2; // P4
for (int k = 2; k <= j && k < MAX; k++)
{ // P5, P6, P8
long q = n / prime[k];
long r = n % prime[k];
if (r == 0)
{
break;
}
if (q <= prime[k])
{ // P7
isPrime = true;
break;
}
}
} while (n < stop); // P3
for (int i = 1; i <= j; i++)
Console.WriteLine(prime[i]);
}
}
}