FUNCTION IDENT main SEMICOLON BEGIN_PARAMS END_PARAMS BEGIN_LOCALS IDENT n COLON INTEGER SEMICOLON IDENT a COLON ARRAY L_SQUARE_BRACKET NUMBER 1000 R_SQUARE_BRACKET OF INTEGER SEMICOLON IDENT i COMMA IDENT j COLON INTEGER SEMICOLON IDENT x COMMA IDENT sqrt_n COLON INTEGER SEMICOLON END_LOCALS BEGIN_BODY READ IDENT n SEMICOLON IDENT x ASSIGN IDENT n SEMICOLON WHILE IDENT x GT IDENT n DIV IDENT x BEGINLOOP IDENT x ASSIGN L_PAREN IDENT x ADD IDENT n DIV IDENT x R_PAREN DIV NUMBER 2 SEMICOLON ENDLOOP SEMICOLON IDENT sqrt_n ASSIGN IDENT x SEMICOLON IDENT i ASSIGN NUMBER 2 SEMICOLON WHILE IDENT i LTE IDENT n BEGINLOOP IDENT a L_SQUARE_BRACKET IDENT i R_SQUARE_BRACKET ASSIGN NUMBER 0 SEMICOLON IDENT i ASSIGN IDENT i ADD NUMBER 1 SEMICOLON ENDLOOP SEMICOLON IDENT i ASSIGN NUMBER 2 SEMICOLON WHILE IDENT i LTE IDENT sqrt_n BEGINLOOP IF IDENT a L_SQUARE_BRACKET IDENT i R_SQUARE_BRACKET EQ NUMBER 0 THEN IDENT j ASSIGN IDENT i ADD IDENT i SEMICOLON WHILE IDENT j LTE IDENT n BEGINLOOP IDENT a L_SQUARE_BRACKET IDENT j R_SQUARE_BRACKET ASSIGN NUMBER 1 SEMICOLON IDENT j ASSIGN IDENT j ADD IDENT i SEMICOLON ENDLOOP SEMICOLON ENDIF SEMICOLON IDENT i ASSIGN IDENT i ADD NUMBER 1 SEMICOLON ENDLOOP SEMICOLON IDENT i ASSIGN NUMBER 2 SEMICOLON WHILE IDENT i LTE IDENT n BEGINLOOP IF IDENT a L_SQUARE_BRACKET IDENT i R_SQUARE_BRACKET EQ NUMBER 0 THEN WRITE IDENT i SEMICOLON ENDIF SEMICOLON IDENT i ASSIGN IDENT i ADD NUMBER 1 SEMICOLON ENDLOOP SEMICOLON END_BODY