Long primes: Difference between revisions

Content added Content deleted
(Added Visual Basic .NET version, translation of C#)
m (→‎{{header|C sharp}}: simplified SomePrimeGenerator.Primes slightly)
Line 187: Line 187:
static class SomePrimeGenerator {
static class SomePrimeGenerator {


public static IEnumerable<int> Primes(long lim) {
public static IEnumerable<int> Primes(int lim) {
bool [] flags = new bool[lim + 1]; long j = 2, lj = 1;
bool [] flags = new bool[lim + 1]; int j = 2;
for (long d = 3, sq = 4; sq <= lim; lj = j++, sq += d += 2)
for (int d = 3, sq = 4; sq <= lim; j++, sq += d += 2)
if (!flags[j]) {
if (!flags[j]) {
yield return (int)j;
yield return j; for (int k = sq; k <= lim; k += j)
for (long k = sq; k <= lim; k += j)
flags[k] = true;
flags[k] = true;
}
}
for (; j<= lim; lj = j++)
for (; j<= lim; j++) if (!flags[j]) yield return j;
if (!flags[j])
yield return (int)j;
}
}
}</lang>
}</lang>