如何判断一个大整数是素数,如何找出整数的模逆

判断大整数是否是素数的方法有:Fermat、 Miller、 Mersenne
虽能解析以下,提供算法或是源码?

还有我想找出一个数的模逆,即对数d,满足(d,n)=1,
如何找出e,满足e*d=1(mod n)?

先谢过了
---------------------------------------------------------------

我的maxim就是你的n。如下:
#define maxim 65537

unsigned int CFileDlg::IDEA_Inv(unsigned xin)
{
unsigned int t0,t1,q,y,x;
x=xin; /printf("%u",x);/
if(x<=1)
return x;
else
{
t1=maxim/x; y=maxim%x;
if(y==1)
return (maxim-t1);
else
{ t0=1;
do {
q=x/y; x=x%y;
t0+=qt1;
if(x==1) return t0;
q=y/x; y=y%x;
t1+=q
t0;
}while(y!=1);
}
}
return(unsigned int)(maxim-t1);
}
素数的判断我原来好像做过,但是现在已经不记得了,不好意思!
---------------------------------------------------------------

有一个方法在这里描述 :
整数分解为素数的乘机 所以判断一个数是否为素数最好的方法为(举例) : 判断 97 是否为素数
因为2357=210>97 而 23*5=30<97
所以用 97/2 97/3 97/5 97/7 结果不可以整除 所以97 为素数
其它的数字也是这样 先找出连续的 N 个素数乘积>要求的数字
且 前 N-1 个连续素数的乘积<要求的数字
判断 要求的数字是否整除 这N个素数 若不能 则是素数 否则为合数

Published At
Categories with 服务器类
Tagged with
comments powered by Disqus