• 大小: 760B
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: C/C++
  • 标签: 大素数  

资源简介

随机产生大素数的C++程序,以时间作为随机数种子,生成大素数

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 

bool witness(int along n)
{
    //得到n-1的二进制表示
    int div=(int) n;
int b[128];
int k=0;
int i;
while(div!=0)
{
        b[k]=div%2;
div=div/2;
k++;
}
//计算
int x;
int d=1;
for(i=k-1;i>=0;i--)
{
x=d;
d=(d*d)%n;
if(d==1&&x!=1&&x!=n-1) 
return true;
if(b[i]==1) 
d=(d*a)%n;
}
if(d!=1)  
return true;
else 
return false;

}
int main()
{
    long digit;
int a;
int i=0;
int j;
srand( (unsigned)time( NULL ) );   //以时间为获得产生随机数的种子
while(1)
{
digit=rand();
while(digit%2==0)
digit=rand();       //随机产生一个奇数
       cout<<“the cow prime is “</*      i=0;
while(i {
//a为小于digit的随机数
a=(int)(digit/(float)RAND_MAX * rand());
cout< //素数测试(Miller_Rabin测试法),返回true表示不是素数
if(witness(adigit))  break;
i++;
}
*/ for(i=2;i<=sqrt(digit);i++)
{
if(digit%i==0)  break;
}

cout<<“i=“<
if(i+1>(int)sqrt(digit))
{
cout<<“digit “<         break;
}
}

return 0;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1198  2003-12-04 20:49  prime.cpp

----------- ---------  ---------- -----  ----

                 1198                    1


评论

共有 条评论