Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
37
Task/Chowla-numbers/XPL0/chowla-numbers.xpl0
Normal file
37
Task/Chowla-numbers/XPL0/chowla-numbers.xpl0
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
func Chowla(N); \Return sum of divisors
|
||||
int N, Div, Sum, Quot;
|
||||
[Div:= 2; Sum:= 0;
|
||||
loop [Quot:= N/Div;
|
||||
if Quot < Div then quit;
|
||||
if Quot = Div and rem(0) = 0 then \N is a square
|
||||
[Sum:= Sum+Quot; quit];
|
||||
if rem(0) = 0 then
|
||||
Sum:= Sum + Div + Quot;
|
||||
Div:= Div+1;
|
||||
];
|
||||
return Sum;
|
||||
];
|
||||
|
||||
int N, C, P;
|
||||
[for N:= 1 to 37 do
|
||||
[IntOut(0, N); Text(0, ": ");
|
||||
IntOut(0, Chowla(N)); CrLf(0);
|
||||
];
|
||||
C:= 1; \count 2 as prime
|
||||
N:= 3; \only check odd numbers
|
||||
repeat if Chowla(N) = 0 then \N is prime
|
||||
C:= C+1;
|
||||
case N+1 of 100, 1000, 10_000, 100_000, 1_000_000, 10_000_000:
|
||||
[Text(0, "There are "); IntOut(0, C); Text(0, " primes < ");
|
||||
IntOut(0, N+1); CrLf(0)]
|
||||
other [];
|
||||
N:= N+2;
|
||||
until N >= 10_000_000;
|
||||
P:= 1; \perfect numbers are of form: 2^(P-1) * (2^P - 1)
|
||||
loop [P:= P*2;
|
||||
N:= P*(P*2-1);
|
||||
if N > 35_000_000 then quit;
|
||||
if Chowla(N) = N-1 then \N is perfect
|
||||
[IntOut(0, N); CrLf(0)];
|
||||
];
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue