June 2018 Update
This commit is contained in:
parent
ba8067c3b7
commit
22f33d4004
5278 changed files with 84726 additions and 14379 deletions
|
|
@ -1,3 +1,4 @@
|
|||
function isperfect(n)
|
||||
n == sum([n % i == 0 ? i : 0 for i = 1:n-1])
|
||||
end
|
||||
isperfect(n::Integer) = n == sum([n % i == 0 ? i : 0 for i = 1:(n - 1)])
|
||||
perfects(n::Integer) = filter(isperfect, 1:n)
|
||||
|
||||
@show perfects(10000)
|
||||
|
|
|
|||
43
Task/Perfect-numbers/Modula-2/perfect-numbers.mod2
Normal file
43
Task/Perfect-numbers/Modula-2/perfect-numbers.mod2
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
MODULE PerfectNumbers;
|
||||
|
||||
FROM SWholeIO IMPORT
|
||||
WriteCard;
|
||||
FROM STextIO IMPORT
|
||||
WriteLn;
|
||||
FROM RealMath IMPORT
|
||||
sqrt;
|
||||
|
||||
VAR
|
||||
N: CARDINAL;
|
||||
|
||||
PROCEDURE IsPerfect(N: CARDINAL): BOOLEAN;
|
||||
VAR
|
||||
S, I: CARDINAL;
|
||||
SqrtN: REAL;
|
||||
BEGIN
|
||||
S := 1;
|
||||
SqrtN := sqrt(FLOAT(N));
|
||||
IF N REM 2 = 0 THEN
|
||||
S := S + 2 + N / 2;
|
||||
END;
|
||||
I := 3;
|
||||
WHILE FLOAT(I) <= SqrtN - 1.0 DO
|
||||
IF N REM I = 0 THEN
|
||||
S := S + I + N / I;
|
||||
END;
|
||||
I := I + 1;
|
||||
END;
|
||||
IF I * I = N THEN
|
||||
S := S + I;
|
||||
END;
|
||||
RETURN (N = S);
|
||||
END IsPerfect;
|
||||
|
||||
BEGIN
|
||||
FOR N := 2 TO 10000 BY 2 DO
|
||||
IF IsPerfect(N) THEN
|
||||
WriteCard(N, 5);
|
||||
WriteLn;
|
||||
END;
|
||||
END;
|
||||
END PerfectNumbers.
|
||||
|
|
@ -1 +1,4 @@
|
|||
sub perf($n) { $n == [+] grep $n %% *, 1 .. $n div 2 }
|
||||
sub is-perf($n) { $n == [+] grep $n %% *, 1 .. $n div 2 }
|
||||
|
||||
# used as
|
||||
put (grep {.&is-perf}, 1..Inf)[^4];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue