Perfect numbers: Difference between revisions

Content added Content deleted
(Updated second D entry)
Line 490: Line 490:
<lang d>import std.stdio, std.algorithm, std.range;
<lang d>import std.stdio, std.algorithm, std.range;


bool isPerfect(in int n) /*pure nothrow*/ {
bool isPerfect(in uint n) pure nothrow
in {
return n == iota(1, n - 1).reduce!((s, i) => n % i ? s : s + i);
assert(n > 0);
} body {
return n == reduce!((s, i) => n % i ? s : s + i)(0, iota(1, n-1));
}
}


void main() {
void main() {
iota(3, 10_000).filter!isPerfect.writeln;
iota(1, 10_000).filter!isPerfect.writeln;
}</lang>
}</lang>