Commit | Line | Data |
---|---|---|
81e70d48 PH |
1 | PROGRAM EEEEEEEEEEEEEE(INPUT,OUTPUT); |
2 | ||
3 | CONST BASE=1000000; | |
4 | ||
5 | VAR N,I,FIRST,LAST,NUMBEROFDIGITS, | |
6 | CARRY,DIGIT,POWER: INTEGER; | |
7 | A,S: ARRAY[1..501] OF INTEGER; | |
8 | ||
9 | BEGIN READ(NUMBEROFDIGITS); | |
10 | FIRST := 1; LAST := NUMBEROFDIGITS DIV 6 + 1; | |
11 | N := 2; | |
12 | A[1] := 500000; S[1] := 500000; | |
13 | FOR I := 2 TO LAST DO | |
14 | BEGIN A[I] := 0; S[I] := 0 END; | |
15 | ||
16 | REPEAT N := N + 1; | |
17 | CARRY := 0; | |
18 | FOR I := FIRST TO LAST DO | |
19 | BEGIN | |
20 | DIGIT := CARRY*BASE + A[I]; | |
21 | A[I] := DIGIT DIV N; | |
22 | CARRY := DIGIT MOD N | |
23 | END; | |
24 | IF A[FIRST] = 0 THEN FIRST := FIRST + 1; | |
25 | ||
26 | CARRY := 0; | |
27 | I := LAST; | |
28 | WHILE (FIRST<=I) OR (CARRY<>0) DO | |
29 | BEGIN | |
30 | DIGIT := S[I] + A[I] + CARRY; CARRY := 0; | |
31 | IF DIGIT >= BASE THEN BEGIN | |
32 | DIGIT := DIGIT - BASE; | |
33 | CARRY := 1 | |
34 | END; | |
35 | S[I] := DIGIT; | |
36 | I := I - 1 | |
37 | END | |
38 | UNTIL FIRST>LAST; | |
39 | ||
40 | WRITE("E = 2."); | |
41 | FOR I := 1 TO LAST DO | |
42 | BEGIN | |
43 | DIGIT := S[I]; POWER := BASE; | |
44 | REPEAT POWER := POWER DIV 10; | |
45 | WRITE(DIGIT DIV POWER :1); | |
46 | DIGIT := DIGIT MOD POWER | |
47 | UNTIL POWER=1; | |
48 | IF I MOD 12 = 0 THEN BEGIN WRITELN; WRITE(" ":6) END | |
49 | END; | |
50 | WRITELN | |
51 | END. |