素数问题,费马小定理 费马小定理证明
for(int i=2;i<=sqtr(x);i++)if(x%i==0)
这个程序简单,容易理解,可是时间复杂度实在让人无法忍受,遇到一个int64的数据规模,根本不可能在1S内可以出解,现在介绍一种RP素数判断法,也叫MILLER-RABBIN测试,在一些书上都有介绍,可是介绍得太简单,害得我这个脑袋本来就不好使的人调了半天才搞定......MR测试(MILLER-RABBIN测试,以下简称MR)是基于费马小定理的一个测试:N是一个正整数,如果存在一个整数B(0<B<N),且B^(N-1) MODN=1,那么N可能是一个素数,如果不为1,那么一定不是一个素数,这个测试基于这点,用随机算法可以随机取S个数(S可以在20-50左右),如果都满足,那么判断它是一个素数.听起来很考RP,但是如果S在50左右,它是一个素数的概率大得可以近似处理为1,在实际运用中绝对可以信赖.这个程序的瓶颈在于求B^(N-1) MOD N的值,之前我有篇文章,介绍了这种快速取模的方法,完全可以满足需要了.下面把我的程序列在下面,仅供参考:#include<stdio.h>
#include<iostream.h>
#include<stdlib.h>
#include<time.h>
#define randomize() srand((unsigned)time(NULL))
long long n;
bool bs;int p(long long x,long long y)
{
long long t;
if(y==1)return x;
else
{
t=p(x,y/2);
if(y%2==1)
returnt*t*x%n;
else
returnt*t%n;
}
}
void mafei(long long n)
{
randomize();
bs=false;
for(int i=1;i<=20;i++)
{
long longs=(rand()%(120-20))+20;
if(p(s,n-1)==1)
bs=true;
}
}
int main()
{
cin>>n;
mafei(n);
if(bs)
cout<<"Y"<<'n';
else
cout<<"N"<<'n';
}
更多阅读
一个不容忽视的问题,长期穿内增高鞋垫的坏处 男生穿增高鞋垫丢人吗
一个不容忽视的问题,长期穿内增高鞋垫的坏处——简介内增高鞋垫是现在年轻人比较热衷的一种小物件,虽说一定意义上,会增加点自己的自信,满足自己的些许虚荣。但无可厚非,增高垫有利有弊,好处比较单调简一。坏处也还蛮多。一个不容忽视的
关于亲子鉴定的问题,亲子鉴定多少钱,怎么做? 做亲子鉴定需要多少钱
关于亲子鉴定的问题,亲子鉴定多少钱,怎么做?——简介 关于亲子鉴定,目前有司法亲子鉴定和个人亲子鉴定两种情形,这里只说司法上的亲子鉴定。关于亲子鉴定的问题,亲子鉴定手续有哪些?亲子鉴定怎么做?看看下文你就知道了。关于亲子鉴定的问题
杀马特家族杀马特创始人王子, 杀马特创始人李小凯
杀马特家族创始人个人档案qq王子杀马特家族 杀马特创始人王子,杀马特创始人王子个人档案,杀马特家族官方指定博客·姓名:小陌昵称:-王子性别:不明
网恋前应了解的五大问题,网恋的优点及危害 五大媒体优缺点
网恋前应了解的五大问题,网恋的优点及危害——简介如今科技高度发达,网络铺天盖地,互联网成为现实生活中应用最广泛、最受欢迎的传媒之一。我们在网上干的最多的事情就是聊天,聊的最多的内容就是爱情,因此网恋也逐渐的在整个网络蔓延开来
爱不是对象问题,而是能力问题 length为空或不是对象
我们都向往“一见钟情”到“白头到老”理想爱情。但是这样的完满是有条件的,我们的人格成熟了吗?我们有爱的能力了吗?弗洛姆在《爱的艺术》中指出:爱的烦恼不是对象问题,而是能力问题。爱情是生命的必需品吗?心探索:爱情中人们总是会遭遇