How to resolve the algorithm Sequence of primes by trial division step by step in the D programming language
Published on 12 May 2024 09:40 PM
How to resolve the algorithm Sequence of primes by trial division step by step in the D programming language
Table of Contents
Problem Statement
Generate a sequence of primes by means of trial division.
Trial division is an algorithm where a candidate number is tested for being a prime by trying to divide it by other numbers. You may use primes, or any numbers of your choosing, as long as the result is indeed a sequence of primes. The sequence may be bounded (i.e. up to some limit), unbounded, starting from the start (i.e. 2) or above some given value. Organize your function as you wish, in particular, it might resemble a filtering operation, or a sieving operation. If you want to use a ready-made is_prime function, use one from the Primality by trial division page (i.e., add yours there if it isn't there already).
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Sequence of primes by trial division step by step in the D programming language
Source code in the d programming language
import std.stdio, std.range, std.algorithm, std.traits,
std.numeric, std.concurrency;
Generator!(ForeachType!R) nubBy(alias pred, R)(R items) {
return new typeof(return)({
ForeachType!R[] seen;
OUTER: foreach (x; items) {
foreach (y; seen)
if (pred(x, y))
continue OUTER;
yield(x);
seen ~= x;
}
});
}
void main() /*@safe*/ {
sequence!q{n + 2}
.nubBy!((x, y) => gcd(x, y) > 1)
.take(20)
.writeln;
}
You may also check:How to resolve the algorithm Unicode variable names step by step in the Wren programming language
You may also check:How to resolve the algorithm Knuth shuffle step by step in the CLU programming language
You may also check:How to resolve the algorithm String concatenation step by step in the Icon and Unicon programming language
You may also check:How to resolve the algorithm Function prototype step by step in the Ada programming language
You may also check:How to resolve the algorithm Nautical bell step by step in the Raku programming language