ABAP 算法

*&统计100里面所有因式分解可以分解成两个质数的数的和

DATA DIVI TYPE I.
DATA DIV TYPE I.
DATA TMP TYPE I.
DATA ALENGTH TYPE I.
*DATA BLENGTH TYPE I.
DATA TMP2 TYPE I.
DATA FLAG TYPE C.
DATA FLAG2 TYPE C.
DATA A TYPE I OCCURS 0 WITH HEADER LINE.
DATA B TYPE I OCCURS 0 WITH HEADER LINE.
FLAG2 = ‘N’.
"A里面存储100以内的质数
"B里面存储要求的数
DO 100 TIMES.
DIVI = DIVI + 1.
IF DIVI = 1.
CONTINUE.
ELSE.
DIV = 1.
FLAG = ‘X’.
TMP = DIVI - 2.
DO TMP TIMES.
DIV = DIV + 1.
TMP = DIVI MOD DIV.
IF TMP = 0.
"BLENGTH = BLENGTH + 1.
"循环判断A里面的每一个数
"WRITE:/ DIVI
LOOP AT A.
TMP2 = A.
"判断能否相除
TMP = DIVI MOD TMP2.
IF TMP = 0.
" 判断除数是否为质数
TMP = DIVI DIV TMP2.
LOOP AT A.
IF TMP = A.
FLAG2 = ‘Y’.
ENDIF.
ENDLOOP.
IF FLAG2 = ‘Y’.
FLAG2 = ‘N’.
APPEND DIVI TO B.
ENDIF.
ENDIF.
ENDLOOP.

    CLEAR FLAG.
    EXIT.
    ENDIF.
  ENDDO.

  CHECK FLAG = 'X'.
  ALENGTH = ALENGTH + 1.
  APPEND DIVI TO A.

ENDIF.

ENDDO.
"去除重复的数据
DELETE ADJACENT DUPLICATES FROM B.
LOOP AT B.
WRITE: B.
ENDLOOP.
WRITE:/ ‘统计100里面所有因式分解可以分解成两个质数的数的和’.
" WRITE:/ A-TABLE_LINE.

猜你喜欢

转载自blog.csdn.net/Pegasus666/article/details/116799060
今日推荐