Update
This commit is contained in:
parent
db7839946f
commit
da00222f76
31 changed files with 2180 additions and 1926 deletions
67
pascal.md
Normal file
67
pascal.md
Normal file
|
@ -0,0 +1,67 @@
|
|||
# Pascal
|
||||
|
||||
TODO
|
||||
|
||||
Here is our standardized divisor tree program in Pascal:
|
||||
|
||||
```
|
||||
program divisorTree;
|
||||
uses crt;
|
||||
|
||||
{ recursive function, prints divisor tree of x }
|
||||
procedure printDivisorTree(x: integer);
|
||||
var
|
||||
a: integer;
|
||||
b: integer;
|
||||
i: integer;
|
||||
begin
|
||||
a := -1;
|
||||
b := -1;
|
||||
|
||||
for i := 2 to x div 2 do { find two closest divisors }
|
||||
begin
|
||||
if x mod i = 0 then
|
||||
begin
|
||||
a := i;
|
||||
b := x div i;
|
||||
|
||||
if b <= a then
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
|
||||
write('(');
|
||||
|
||||
if a > 1 then
|
||||
begin
|
||||
printDivisorTree(a);
|
||||
write(' ',x,' ');
|
||||
printDivisorTree(b);
|
||||
end
|
||||
else
|
||||
write(x);
|
||||
|
||||
write(')');
|
||||
end;
|
||||
|
||||
var
|
||||
number: integer;
|
||||
code: integer;
|
||||
userInput: string[16];
|
||||
|
||||
begin
|
||||
while true do { main loop, read numbers from the user }
|
||||
begin
|
||||
readLn(userInput);
|
||||
val(userInput,number,code);
|
||||
|
||||
if code <> 1 then
|
||||
begin
|
||||
printDivisorTree(number);
|
||||
writeLn('');
|
||||
end
|
||||
else
|
||||
break;
|
||||
end;
|
||||
end.
|
||||
```
|
Loading…
Add table
Add a link
Reference in a new issue