Jump to content

Sieve of Pritchard: Difference between revisions

m
→‎{{header|C#|CSharp}}: heh, neglected to post the latest code...
(Added C# version, loosely translated from python version)
m (→‎{{header|C#|CSharp}}: heh, neglected to post the latest code...)
Line 40:
var primes = new List<int>();
while (prime <= rtlim) {
if (stp < limit) {
foreach (var wnu in= new List<int>(members)); {
foreach (var w in members) {
n = w + stp;
while (n <= limit) { membersnu.Add(n); n += stp; }
}
stp = Mathmembers.MinUnionWith(prime * stp, limitnu);
}
stp = Math.Min(prime * stp, limit);
np = 0;
foreach (var wwb in= new List<int>(members)) {;
foreach (var w in members) {
if (np == 0 && w > prime) np = w; // next prime
if (members.Contains(n = prime * w)) memberswb.RemoveAdd(n);
}
foreach (var itm in wb) if (members.Contains(itm)) members.Remove(itm);
primes.Add(prime);
prime = prime == 2 ? 3 : np;
Line 60 ⟶ 65:
 
static void Main(string[] args) {
Console.WriteLine("[{0}]" +, string.Join(", ", PrimesUpTo(15010000)) + "]");
}
}</syntaxhighlight>
Cookies help us deliver our services. By using our services, you agree to our use of cookies.