随机产生大素数的C++程序
- q6_706851了解作者
- 760B文件大小
- rar文件格式
- 0收藏次数
- VIP专享资源类型
- 0下载次数
- 2022-06-09 04:16上传日期
随机产生大素数的C++程序,以时间作为随机数种子,生成大素数

prime.rar
- prime.cpp1.2KB
内容介绍
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
bool witness(int a,long 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 "<<digit<<"\n";
/* i=0;
while(i<digit)
{
//a为小于digit的随机数
a=(int)(digit/(float)RAND_MAX * rand());
cout<<a<<"\n";
//素数测试(Miller_Rabin测试法),返回true表示不是素数
if(witness(a,digit)) break;
i++;
}
*/ for(i=2;i<=sqrt(digit);i++)
{
if(digit%i==0) break;
}
cout<<"i="<<i<<"\n";
if(i+1 rel='nofollow' onclick='return false;'>(int)sqrt(digit))
{
cout<<"digit "<<digit<<" is big prime!\n";
break;
}
}
return 0;
}
评论



相关推荐
- C++ PRrimer本书是久负盛名的C++经典教程,其内容是C++大师Stanley B. Lippman丰富的实践经验和C++标准委员会原负责人Josée Lajoie对C++标准深入理解的完美结合,已经帮助全球无数程序员学会了C++。本版对前一版进行了彻底的...
- c++课件c++课件c++课件c++课件c++课件c++课件c++课件c++课件c++课件c++课件c++课件c++课件c++课件c++课件
- C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++
- Effective C++学习c++的经典书籍!每一个学习c++的人有时间最好看看!你会获得很大收获!
- c++informationc++c++c++c++c++c++c++c++c++c++c++c++
- SourceStyler C++用DEV-C++写代码很方便,就是不能格式化有点郁闷 c++格式化的好工具 效率高
- c++yuyanbiancheng这是C和C++集成的编程环境!这是C和C++集成的编程环境!这是C和C++集成的编程环境!这是C和C++集成的编程环境!这是C和C++集成的编程环境!
- C++ primier学习C++的经典之作,希望大家学习愉快,快速掌握C++的各种知识。多下哈
- effective C++有关C++编程方面的检验性介绍,对由C转向C++,和有C++编程基础的程序员有帮助,不过是英文版
- effective c++C++经典书籍Effective C++ By Scott Meyers, 已译成中文,chm格式,方便检阅 Uploaded by save (chaisave@sohu.com)
最新资源