Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
60
Task/Farey-sequence/XPL0/farey-sequence.xpl0
Normal file
60
Task/Farey-sequence/XPL0/farey-sequence.xpl0
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
proc Farey(N); \Show Farey sequence for N
|
||||
\Translation of Python program on Wikipedia:
|
||||
int N, A, B, C, D, K, T;
|
||||
[A:= 0; B:= 1; C:= 1; D:= N;
|
||||
Text(0, "0/1");
|
||||
while C <= N do
|
||||
[K:= (N+B)/D;
|
||||
T:= C;
|
||||
C:= K*C - A;
|
||||
A:= T;
|
||||
T:= D;
|
||||
D:= K*D - B;
|
||||
B:= T;
|
||||
ChOut(0, ^ ); IntOut(0, A);
|
||||
ChOut(0, ^/); IntOut(0, B);
|
||||
];
|
||||
];
|
||||
|
||||
func GCD(N, D); \Return the greatest common divisor of N and D
|
||||
int N, D; \numerator and denominator
|
||||
int R;
|
||||
[if D > N then
|
||||
[R:= D; D:= N; N:= R]; \swap D and N
|
||||
while D > 0 do
|
||||
[R:= rem(N/D);
|
||||
N:= D;
|
||||
D:= R;
|
||||
];
|
||||
return N;
|
||||
]; \GCD
|
||||
|
||||
func Totient(N); \Return the totient of N
|
||||
int N, Phi, M;
|
||||
[Phi:= 0;
|
||||
for M:= 1 to N do
|
||||
if GCD(M, N) = 1 then Phi:= Phi+1;
|
||||
return Phi;
|
||||
];
|
||||
|
||||
func FareyLen(N); \Return length of Farey sequence for N
|
||||
int N, Sum, M;
|
||||
[Sum:= 1;
|
||||
for M:= 1 to N do
|
||||
Sum:= Sum + Totient(M);
|
||||
return Sum;
|
||||
];
|
||||
|
||||
int N;
|
||||
[for N:= 1 to 11 do
|
||||
[IntOut(0, N); Text(0, ": ");
|
||||
Farey(N);
|
||||
CrLf(0);
|
||||
];
|
||||
for N:= 1 to 10 do
|
||||
[IntOut(0, N); Text(0, "00: ");
|
||||
IntOut(0, FareyLen(N*100));
|
||||
CrLf(0);
|
||||
];
|
||||
RlOut(0, 3.0 * sq(1000.0) / sq(3.141592654)); CrLf(0);
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue