public class PolynomialHashCode {

	/**
	 * @param args
	 */
	
	/**raise m to the power n*/
	public static int power(int m,int n){
		if(n==0) return 1;
		else return m*power(m,n-1);
	}
	public static int polynomial(int a,int x0,int x1,int x2,int x3){
		return (x0*power(a,3)+x1*power(a,2)+x2*a+x3);
		
	}
	public static void main(String[] args) {
		int a;
		int word1,word2,word3,word4;
		System.out.println("The polynomial code is x_{0}a^{k-1}+x_{1}a^{k-2}+...x_{k-1}");
		System.out.println("The unicode values for the letters p,o,t and s are:");
		System.out.println("P->"+(int) 'P');
		System.out.println("O->"+(int) 'O');
		System.out.println("T->"+(int) 'T');
		System.out.println("S->"+(int) 'S');
		System.out.println("A->"+(int) 'A');
		System.out.println("C->"+(int) 'C');
		System.out.println("E->"+(int) 'E');
		System.out.println("D->"+(int) 'D'+"\n");
		
		int y0=(int) 'P';
		int y1=(int) 'O';
		int y2=(int) 'T';
		int y3=(int) 'S';
		
		int z0=(int) 'S';
		int z1=(int) 'P';
		int z2=(int) 'O';
		int z3=(int) 'T';
		
		int w0=(int) 'T';
		int w1=(int) 'O';
		int w2=(int) 'P';
		int w3=(int) 'S';
		
		int v0=(int) 'A';
		int v1=(int) 'C';
		int v2=(int) 'E';
		int v3=(int) 'D';
		
		a=10;
		System.out.println("with a==10");
		word1=polynomial(10,y0,y1,y2,y3);
		word2=polynomial(10,z0,z1,z2,z3);
		word3=polynomial(10,w0,w1,w2,w3);
		word4=polynomial(10,v0,v1,v2,v3);
		System.out.println("POTS ->" + word1);
		System.out.println("SPOT ->" + word2);
		System.out.println("TOPS ->" + word3);
		System.out.println("ACED ->" + word4);
		System.out.println("\n");
		
		a=33;
		System.out.println("with a==33");
		word1=polynomial(33,y0,y1,y2,y3);
		word2=polynomial(33,z0,z1,z2,z3);
		word3=polynomial(33,w0,w1,w2,w3);
		word4=polynomial(33,v0,v1,v2,v3);
		System.out.println("POTS ->" + word1);
		System.out.println("SPOT ->" + word2);
		System.out.println("TOPS ->" + word3);
		System.out.println("ACED ->" + word4);
		System.out.println("\n");
		
		a=37;
		System.out.println("with a==37");
		word1=polynomial(37,y0,y1,y2,y3);
		word2=polynomial(37,z0,z1,z2,z3);
		word3=polynomial(37,w0,w1,w2,w3);
		word4=polynomial(37,v0,v1,v2,v3);
		System.out.println("POTS ->" + word1);
		System.out.println("SPOT ->" + word2);
		System.out.println("TOPS ->" + word3);
		System.out.println("ACED ->" + word4);
		System.out.println("\n");

	}

}