Example #1
0
long long solve(int x, long long &y, char *n, int m)
{
	if(n[0]=='1' && n[1]==0)
	{
		y = x;
		return 1;
	}
	bool f = isodd(n);
	rightshift(n);
	long long r = solve(x, y, n, m);
	r = r * (1 + y);
	y = y * y;
	if(f)
	{
		r = r + y;
		y = y * x;
	}
	y = y % m;
	return r % m;
}
Example #2
0
void randomization()
{
    unsigned char ch;
    int  a=0,j,k,i,check,nc1;
    int nl;

    long int nblock;
    int ii,jj,ii1,jj1;


    for(a=1; a<=times; a++)
    {
        check=a%5;
        switch(check)
        {
        case 0 :
            cycling();
            upshift();
            rightshift();
            downshift();
            leftshift();
            downshift();
            rightshift();
            upshift();
            cycling();
            break;
        case 1 :
            leftshift();
            cycling();
            upshift();
            rightshift();
            downshift();
            rightshift();
            upshift();
            cycling();
            leftshift();
            break;
        case 2 :
            downshift();
            leftshift();
            cycling();
            upshift();
            rightshift();
            upshift();
            cycling();
            leftshift();
            downshift();
            break;
        case 3 :
            rightshift();
            downshift();
            leftshift();
            cycling();
            upshift();
            cycling();
            leftshift();
            downshift();
            rightshift();
            break;
        case 4 :
            upshift();
            rightshift();
            downshift();
            leftshift();
            cycling();
            leftshift();
            downshift();
            rightshift();
            upshift();
            break;
        }
    }
}