Anonymous user
Perfect numbers: Difference between revisions
Updated both D entries
(Updated first D entry) |
(Updated both D entries) |
||
Line 458:
=={{header|D}}==
<lang d>import std.stdio, std.algorithm, std.range;▼
in {▼
assert(n > 0);▼
} body {▼
return n == iota(1, n - 1).filter!(i => n % i == 0).sum;
}▼
void main() {▼
}</lang>▼
{{out}}
<pre>[6, 28, 496, 8128]</pre>
===Faster Imperative Version===
{{trans|Algol}}
<lang d>import std.stdio, std.math, std.range, std.algorithm;
bool
if (n < 2)
return false;
int
foreach (immutable i; 2 .. cast(int)real(n).sqrt + 1)
if (n % i == 0) {
immutable int q = n / i;
if (q > i)
}
return
}
void main() {
10_000.iota.filter!
}</lang>
{{out}}
Line 485 ⟶ 501:
With a <code>33_550_337.iota</code> it outputs:
<pre>[6, 28, 496, 8128, 33550336]</pre>
▲===Functional Style===
▲<lang d>import std.stdio, std.algorithm, std.range;
▲bool isPerfect(in uint n) pure nothrow
▲in {
▲ assert(n > 0);
▲} body {
▲}
▲void main() {
▲ iota(1, 10_000).filter!isPerfect.writeln;
▲}</lang>
=={{header|E}}==
|