1 / 6
文档名称:

密码学作业.pdf

格式:pdf   页数:6
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

密码学作业.pdf

上传人:janny 2011/6/26 文件大小:0 KB

下载得到文件列表

密码学作业.pdf

文档介绍

文档介绍:***@author: 杨海亮 2406206023
求乘法逆元:
int Extended_Euclid(int f,int d)
{
int T1,T2,T3,Q;
int X[3]={1,0,f},Y[3]={0,1,d};
while(Y[2]!=1)
{
if(Y[2]==0)
return -1;
Q=X[2]/Y[2];
T1=X[0]-Q*Y[0];T2=X[1]-Q*Y[1];T3=X[2]-Q*Y[2];
X[0]=Y[0];X[1]=Y[1];X[2]=Y[2];
Y[0]=T1;Y[1]=T2;Y[2]=T3;
}
if(Y[2]==1)
{
if(Y[1]<0)
return Y[1]+f;
else return Y[1];

}
}
main()
{
int f,d,i;
printf("Please input two number:\n");
for(i=0;i<1;i++)
{
scanf("%d,%d",&f,&d);
/*if(d>f)
{
printf("The %d is less %d!Please input two number
again!\n",f,d);
i--;
};*/
}
printf("%d 在 mod%d 下有乘法逆
元:%d",d,f,Extended_Euclid(f,d));

}
中国剩余定理:
main()
{
int size_t,i;
int a[20];
int b[20];
printf("Please input change number:\n");
scanf("%d",&size_t);
printf("Input %d numbers:\n",2*size_t);
for(i=0;i<size_t;i++)
{
scanf("%d,%d",&a[i],&b[i]);

}
printf("The reslut is %d\n",chinese_remainer(size_t,&a,&b));
}
int chinese_remainer(int size_t,int *m,int *u)
{
int i,r;
int modulus;
int n;
modulus=1;
r=size_t;
for(i=0;i<r;++i)
modulus *=m[i