本文整理汇总了C++中PrimeSieve::GetPrimeIndex方法的典型用法代码示例。如果您正苦于以下问题:C++ PrimeSieve::GetPrimeIndex方法的具体用法?C++ PrimeSieve::GetPrimeIndex怎么用?C++ PrimeSieve::GetPrimeIndex使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PrimeSieve
的用法示例。
在下文中一共展示了PrimeSieve::GetPrimeIndex方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetMultiplies
IntVec PrimeSwing::GetMultiplies( int _number, PrimeSieve& _sieve )
{
IntVec multiplies;
int sqrtN = static_cast<int>( sqrt( static_cast<double>(_number) ) );
int maxIdx = _sieve.GetPrimeIndex( sqrtN, 2, _sieve.GetNumberOfPrimes() );
for ( int i = 1; i < maxIdx; ++i )
{
int prime = _sieve.GetPrime(i);
int q = _number, p = 1;
while ((q /= prime) > 0)
if ((q & 1) == 1)
p *= prime;
if (p > 1)
multiplies.push_back(p);
}
int minIdx = maxIdx;
maxIdx = _sieve.GetPrimeIndex( _number / 3, minIdx, _sieve.GetNumberOfPrimes() );
for (int i = minIdx; i < maxIdx; ++i)
{
int prime = _sieve.GetPrime(i);
if (((_number / prime) & 1) == 1)
multiplies.push_back(prime);
}
return multiplies;
}