public static long PGCD(long p, long g) {
		boolean alterne=true;
		long r=p;
		long a=g;
		while(r!=0 && a!=0) {
			if(alterne) {
				a%=r;
			}
			else {
				r%=a;
			}
			alterne=!alterne;
		}
		return Math.max(r, a);
	}