Skip to content

Commit

Permalink
Merge pull request #55 from igitur/fix-primenumbers
Browse files Browse the repository at this point in the history
Fix prime number implementation.
  • Loading branch information
igitur committed Aug 21, 2015
2 parents dcfe0fa + f3f6832 commit 663c2ea
Showing 1 changed file with 7 additions and 14 deletions.
21 changes: 7 additions & 14 deletions QLNet/Math/PrimeNumbers.cs
Original file line number Diff line number Diff line change
Expand Up @@ -54,22 +54,17 @@ private PrimeNumbers() { }
public static ulong get(int absoluteIndex)
{
if (primeNumbers_.empty())
{
//int n = sizeof(firstPrimes)/sizeof(firstPrimes[0]);
int n = 8*sizeof(ulong)/sizeof(ulong);
//primeNumbers_.insert(primeNumbers_.end(),firstPrimes, firstPrimes+n);
//IEnumerable<ulong> colection=firstPrimes..ForEach((i, x) => i <n));
primeNumbers_.AddRange( firstPrimes.ToList<ulong>().GetRange(0,n));
}
while (primeNumbers_.Count<=absoluteIndex)
primeNumbers_.AddRange(firstPrimes);

while (primeNumbers_.Count<=absoluteIndex)
nextPrimeNumber();
return primeNumbers_[absoluteIndex];

return primeNumbers_[absoluteIndex];
}

private static ulong nextPrimeNumber()
{
//ulong p, n, m = primeNumbers_.back();
ulong p, n, m = primeNumbers_.First();
ulong p, n, m = primeNumbers_.Last();
do {
// skip the even numbers
m += 2;
Expand All @@ -80,12 +75,10 @@ private static ulong nextPrimeNumber()
p = primeNumbers_[i];
++i;
}
while ((m % p==1) && p <= n);//while ( m%p && p<=n );
while ((m % p != 0) && p <= n);
} while ( p<=n );
primeNumbers_.Add(m);
return m;
}

}

}

0 comments on commit 663c2ea

Please sign in to comment.