by@kurgm
WA
IDENTIFICATION DIVISION.
PROGRAM-ID. IDEONE.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 b PIC X(100) .
01 i PIC 9(3) .
01 du PIC 9(15) VALUE 0.
01 dl PIC 9(16) VALUE 0.
01 d PIC X(31) .
01 m PIC 9(16) VALUE 1000000000000000.
01 c PIC 9 .
01 q PIC 9 .
01 r PIC 9(16) .
PROCEDURE DIVISION.
ACCEPT b
PERFORM VARYING i FROM 1 BY 1 UNTIL i > 100
COMPUTE du = du * 2
COMPUTE dl = dl * 2
MOVE b(i:1) TO c
COMPUTE dl = dl + c
DIVIDE dl BY m GIVING q REMAINDER r
MOVE r TO dl
COMPUTE du = du + q
END-PERFORM.
STRING
du dl
INTO d
END-STRING.
DISPLAY d.
STOP RUN.
1100011011010101111000000001101110110110011011110010000011000000000111000101101010101010111010101110
9845854634480680068147265711790