public static long semiPrime(long p, long x, long y, int size)
	{
		if(x==p) return -1; 
		if(p==x*y && x!=1) 
		{
			return x;
		}
		for(int i=0; i<10; i++)
			for(int j=0; j<10; j++)
			{
				count++;
				long mod = modulo[size+1];
				long l = i*mod/10+x;
				long m = j*mod/10+y;
				if(l*m<=p && size<pl)
					if(l*m % mod == p %mod)
					{
						long res = semiPrime(p,l,m,size+1);
						if(res!=-1) return res;
					}
			}
		return -1;
	}