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.
SURFTlRJRklDQVRJT04gRElWSVNJT04uClBST0dSQU0tSUQuIElERU9ORS4KCkVOVklST05NRU5UIERJVklTSU9OLgoKREFUQSBESVZJU0lPTi4KV09SS0lORy1TVE9SQUdFIFNFQ1RJT04uCjAxIGIgUElDIFgoMTAwKSAuCjAxIGkgUElDIDkoMykgLgowMSBkdSBQSUMgOSgxNSkgVkFMVUUgMC4KMDEgZGwgUElDIDkoMTYpIFZBTFVFIDAuCjAxIGQgUElDIFgoMzEpIC4KMDEgbSBQSUMgOSgxNikgVkFMVUUgMTAwMDAwMDAwMDAwMDAwMC4KMDEgYyBQSUMgOSAuCjAxIHEgUElDIDkgLgowMSByIFBJQyA5KDE2KSAuCgpQUk9DRURVUkUgRElWSVNJT04uCiAgQUNDRVBUIGIKICBQRVJGT1JNIFZBUllJTkcgaSBGUk9NIDEgQlkgMSBVTlRJTCBpID4gMTAwCiAgICBDT01QVVRFIGR1ID0gZHUgKiAyCiAgICBDT01QVVRFIGRsID0gZGwgKiAyCiAgICBNT1ZFIGIoaToxKSBUTyBjCiAgICBDT01QVVRFIGRsID0gZGwgKyBjCiAgICBESVZJREUgZGwgQlkgbSBHSVZJTkcgcSBSRU1BSU5ERVIgcgogICAgTU9WRSByIFRPIGRsCiAgICBDT01QVVRFIGR1ID0gZHUgKyBxCiAgRU5ELVBFUkZPUk0uCiAgU1RSSU5HCiAgICBkdSBkbAogICAgSU5UTyBkCiAgRU5ELVNUUklORy4KICBESVNQTEFZIGQuCiAgU1RPUCBSVU4uCg==