Ejemplo n.º 1
0
void MODULAR_EXPONENTIATION(int *a,int *b,int *n)
{
	BG d,z;
	int i;
	d[0]=1;d[1]=1;
	for(i=b[0];i>=1;i--)
	{
		mulbig(d,d,z);
		modbig(z,n,d);
		if(b[i]==1)
		{
			mulbig(d,a,z);
			modbig(z,n,d);
		}
	}
	cpybig(a,d);
}
Ejemplo n.º 2
0
void biggcd(int *x,int *y)
{
	int *z;
	while(1)
	{
		if(y[0]==1 && y[1]==0)return;
		modbig(x,y);
		z=y;y=x;x=z;
	}
}
Ejemplo n.º 3
0
int main(void)
{
    int n, digit;
    int seq[MAXD];

    while (scanf("%d", &n) == 1) {
        initbig(seq, &digit);
        
        while (modbig(seq, digit, n) != 0)
            plusbig(seq, &digit);

        printf("%d\n", digit);
    }
    return 0;
}