本文整理汇总了C++中PrimeSeq::reset方法的典型用法代码示例。如果您正苦于以下问题:C++ PrimeSeq::reset方法的具体用法?C++ PrimeSeq::reset怎么用?C++ PrimeSeq::reset使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PrimeSeq
的用法示例。
在下文中一共展示了PrimeSeq::reset方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ECM_stage_one
// returns a non-trivial factor q of ZZ_p::modulus(), or 1 otherwise
void ECM_stage_one(ZZ& q, EC_p& Q, PrimeSeq& seq, long bound) {
long sbound = (long)sqrt((double)bound);
seq.reset(0);
long p = seq.next();
for (; p<=sbound; p=seq.next()) {
long pp,t=p;
do { pp=t; t*=p; } while (t>pp && t<=bound); // we might overflow t here
mul(Q,Q,pp);
}
for (; p<=bound; p=seq.next())
mul(Q,Q,p);
if (!IsZero(Q))
GCD(q,ZZ_p::modulus(),rep(Q.Z));
else
set(q);
}
示例2: primroot
/* Find a primitive root modulo N */
long primroot(long N,long phiN)
{
long g=2,p;
PrimeSeq s;
bool flag=false;
while (flag==false)
{ flag=true;
s.reset(1);
do
{ p=s.next();
if ((phiN%p)==0)
{ if (PowerMod(g,phiN/p,N)==1)
{ flag=false; }
}
}
while (p<phiN && flag);
if (flag==false) { g++; }
}
return g;
}
示例3: main
int main(){
long n = 183783600;
long b = 18;
long rootn=SqrRoot(n);
long p;
PrimeSeq s;
vector<long> values;
vector<long> logV;
for(long m=n+1;m<1.66*n;m++){
values.push_back(m);
logV.push_back(log(m));
}
s.reset(b);
p=s.next();
int temp=log(p);
while(p<rootn){
for(int i=0;i<logV.size();i++){
long t=pow(10,(logV[i]/temp));
if(ceil(t)-t<0.05 || t-floor(t)<0.05){
// cout<<"here at "<<i<<endl;
values[i]=0;
break;
}
}
p=s.next();
}
int y=0;
cout<<"arr=[";
for(int i=0;i<values.size();++i){
if(values[i]!=0)cout<<values[i]<<",";
// if(temp[i]!=0)cout<<temp[i]<<endl;
}
cout<<"0]"<<endl;
cout<<"ND = numdiv("<<n<<"); nd = 0; i = 1; while( nd<=ND, nd = numdiv(arr[i]); i = i+1); print(arr[i-1])"<<endl;
return 0;
}