Code: Alles auswählen.
TYPES: BEGIN OF ty_zahl,
zahl TYPE i,
END OF ty_zahl,
tt_zahl TYPE STANDARD TABLE OF ty_zahl.
DATA: gt_zahl TYPE tt_zahl,
gs_zahl TYPE ty_zahl,
ergebnis TYPE i,
multi TYPE i,
mal TYPE i.
* Tabelle mit Zahlen von 1-1000 füllen
DO 1000 TIMES.
gs_zahl-zahl = sy-index.
APPEND gs_zahl TO gt_zahl.
ENDDO.
* Zahl 1 aus Tabelle löschen, weil keine Primzahl.
DELETE gt_zahl WHERE zahl = 1.
* mit Multiplikand 2 beginnen
multi = 2.
WHILE multi LT 32. "32 ist die höchste Zahl
mal = 1.
* Vielfache von Multiplikand errechnen und aus Tabelle löschen
DO.
mal = mal + 1.
ergebnis = multi * mal.
IF ergebnis GT 1000.
EXIT.
ENDIF.
DELETE gt_zahl WHERE zahl = ergebnis.
ENDDO.
multi = multi + 1.
ENDWHILE.
* übrige Zahlen ausgeben
LOOP AT gt_zahl INTO gs_zahl.
WRITE: gs_zahl-zahl.
ENDLOOP.
Folgende Benutzer bedankten sich beim Autor PeterPaletti für den Beitrag:
Elcin
Code: Alles auswählen.
DO 1000 TIMES.
IF sy-index = 1.
CONTINUE.
ENDIF.
primzahl = sy-index.
weniger = primzahl - 1.
CLEAR keine_primzahl.
WHILE weniger GE 2.
ergebnis = primzahl MOD weniger.
IF ergebnis = 0.
keine_primzahl = 'X'.
EXIT.
ENDIF.
weniger = weniger - 1.
ENDWHILE.
IF keine_primzahl IS INITIAL.
WRITE: primzahl.
ENDIF.
ENDDO.
Folgende Benutzer bedankten sich beim Autor PeterPaletti für den Beitrag:
Elcin