#ifndef __UTIL_H
#define __UTIL_H

#include <string>
#include <cmath>
#include "..\common\myTypes.h"

using namespace std ;

class Util {

	private:
		Util(void);
		Util(const Util&);
		Util& operator= (const Util&);

	public:
		static int8 jacobi(uint32, uint32);
		static uint32 inv(uint32, uint32);
		static bool isPrime(uint32);
		static bool isPrime3mod4(uint32);
		static uint32 powMod(uint32, uint32, uint32);
		static uint32 hash(string);
		static uint32 hash(string, uint32);
		static uint32 greater(uint32, uint32);
		static uint32 smaller(uint32, uint32);
		static uint32 gcd(uint32, uint32);
		static string uint32ToString(uint32);

};

#endif