İki Sayı Arası Asal Sayı Kontrolü

Girilen alt ve üst sınır arasındaki asal sayıları fonksiyon ile belirleyen program.

OBLIGATORY  =  Girilmesi gerekli alan
ZCRM_ASAL = numc(5) "5 karakter uzunluğunda numerik rakam
NO-ZERO = sayının solundaki sıfırları atmaya yarar

*&---------------------------------------------------------------------
*& Report ZCRM_TEST_14
*&---------------------------------------------------------------------
*& Emre AYDIN
*& İki sayı arasında asal sayı bulan program.
*&---------------------------------------------------------------------
REPORT zcrm_test_14.

DATA lv_bool TYPE c.
DATA lv_temp TYPE zcrm_asal.
**iki adet 1-10000 arası sayı alıyoruz.
SELECTION-SCREEN  BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-003.
PARAMETERS lv_sayi1 TYPE zcrm_asal OBLIGATORY.
PARAMETERS lv_sayi2 TYPE zcrm_asal OBLIGATORY.
"" girilen ilk sayı büyük olursa.
IF lv_sayi1 > lv_sayi2.
  lv_temp  = lv_sayi1.
  lv_sayi1 = lv_sayi2.
  lv_sayi2 = lv_temp.
  ENDIF.
SELECTION-SCREEN END OF BLOCK b1.

** girilen lv_sayi1 ile lv_sayi2 arasındaki asal sayıları loop ile bulacağız.
  DO.

    CALL FUNCTION 'ZCRM_ASAL_HSP'
      EXPORTING
        sayi1     = lv_sayi1
      IMPORTING
        bool_asal = lv_bool.

    IF lv_bool = 'x'.
      WRITE:/ 'Asal sayı - ',lv_sayi1 NO-ZERO.
    ENDIF.
    IF lv_sayi1 = lv_sayi2.
      EXIT.
    ENDIF.
    lv_sayi1 = lv_sayi1 + 1.
  ENDDO.

Asal hesaplama

FUNCTION zcrm_asal_hsp.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     REFERENCE(SAYI1) TYPE  ZCRM_ASAL
*"  EXPORTING
*"     REFERENCE(BOOL_ASAL) TYPE  BOOLEAN
*"----------------------------------------------------------------------

DATA: lv_temp TYPE i.
DATA: lv_value TYPE i.
DO SAYI1 TIMES.

  lv_temp = SAYI1 MOD sy-index.
  IF lv_temp EQ 0.
    lv_value = lv_value + 1.
  ENDIF.

ENDDO.

IF lv_value <> 2.
  ""asal değil ise -, asal ise x
  BOOL_ASAL = '-'.
ELSE.
  BOOL_ASAL = 'x'.
ENDIF.

ENDFUNCTION.

Yorum bırakın

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.

WordPress.com'da bir web sitesi veya blog oluşturun

Yukarı ↑