mb.h
来自「此代码实现的功能主要是做素性判断的MillerRobin测试」· C头文件 代码 · 共 44 行
H
44 行
#include <time.h>
#include <stdlib.h>
#include "stdio.h"
bool Btest(int a,int i)//i-1=2^s*t
{
int s=0,j;
int x=1;
int t=i-1; //t is an even
do{
s++;
t=t/2;
}while(t%2==1);
for(j=1;j<=t;j++)
{
x=(x*a)%i;
}
if((x==1)||(x==(i-1)))
return true;
for(j=1;j<=s-1;j++)
{
x=(x*x)%i;
if(x==(i-1))
return true;
}
return false;
}
bool MB(int i)
{
int a;
time_t t;
srand((unsigned) time(&t)*10000000);
a=rand()%(i-3)+2;
return Btest(a,i);
}
bool RepeatMB(int i,int j)
{
int k;
for(k=1;k<=j;k++)
if (MB(i)==false)
return false ;
return true;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?