Anonymous user
Perfect numbers: Difference between revisions
→{{header|D}}
Line 225:
=={{header|D}}==
Based on the Algol version:
<lang d>
if (n < 2) {▼
▲ if (n < 2)
return false;
}
int max = cast(int) sqrt(cast(real) n) + 1;
int tot = 1;
for (int i = 2; i < max; i++) {
if (n % i == 0) {
tot += i;
int q = n / i;
if (q > i) {
tot += q;
}
}
}
return tot == n;
}
void main() {
for (int n; n <
if (
}
}
}</lang>
<lang d>unittest {
assert(equal(filter!(isPerfectNumber)(iota(1,10000)), [6,28,496,8128]));
}</lang>
|