public class Driver
{
	public static void main(String args[])
	{
		int problem;
		int [] vals1, vals2;
		String [] sVals1, sVals2;
		float [] fVals1, fVals2, tol;
		char [] cVals;
		
		if (args.length > 0)
		{
			problem = Integer.parseInt(args[0]);
		}
		else 
		{
			problem = 0;
		}
		
		switch (problem)
		{
			case 1: 
				vals1 = new int[] {-5, -4, 0, 12, 13};
				for (int i : vals1)
				{	
					if (PC.isOdd(i))
						System.out.println(i + " is ODD");
					else
						System.out.println(i + " is EVEN");
				}
				break;
			case 2:
				vals1 = new int[] {1, 2, 3, 4, 5, 6, 7, 21, 23, 942, 1031};
				for (int i : vals1)
				{	
					if (PC.isPrime(i))
						System.out.println(i + " is PRIME");
					else
						System.out.println(i + " is NOT prime");
				}
				break;
			case 3:
				vals1 = new int [] {1, 5, 6, 20, 55, 83};
				vals2 = new int [] {1, 25, 14, 50, 55, 23};
				for (int ii = 0; ii < vals1.length; ii++)
				{
					System.out.printf("gcd of %d and %d is %d\n", vals1[ii], vals2[ii], PC.gcd(vals1[ii], vals2[ii]));
				}
				break;
			case 4:
				vals1 = new int [] {1, 5, 6, 20, 55, 83};
				vals2 = new int [] {1, 25, 14, 50, 55, 23};
				for (int ii = 0; ii < vals1.length; ii++)
				{
					System.out.printf("lcm of %d and %d is %d\n", vals1[ii], vals2[ii], PC.lcm(vals1[ii], vals2[ii]));
				}
				break;
			case 5: 
				sVals1 = new String [] {"abcdefg", "racecar", "!@#$%"};
				for (String word : sVals1)
				{
					System.out.println(word + " in reverse is " +  PC.reverse(word));
				}
				break;
			case 6:
				vals1 = new int [] {0, 1, 5, 6, 20};
				for (int val : vals1)
					PC.powers2(val);
				break;
			case 7:
				fVals1 = new float [] {1.0f, 5.5f, 3.1112f, 20f, 12f, 33f};
				fVals2 = new float [] {1.0f, 5.1f, 3.1111f, 30f, 13f, 33.01f};
				tol = new float [] {0.0f, 0.5f, 0.00001f, 5f, .5f, .1f};
				for (int ii = 0; ii < fVals1.length; ii++)
				{
					if (PC.floatEquals(fVals1[ii], fVals2[ii], tol[ii]))
						System.out.printf("%f is within %f of %f\n", fVals1[ii], tol[ii], fVals2[ii]);
					else
						System.out.printf("%f is NOT within %f of %f\n", fVals1[ii], tol[ii], fVals2[ii]);
				}
				break;
			case 8:
				cVals = new char [] {'a', 'z', 'A', 'Z', '0', 'p', ']', '3', '#', ' '};
				for (char c : cVals)
				{
					if (PC.isAlpha(c))
						System.out.printf("%s is a letter\n", c);
					else
						System.out.printf("%s is not a letter\n", c);
				}
				break;
			default:
				System.out.println("Bad value");
		}
	}
}


					