Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Small logic in ABAP

Former Member
0 Kudos

Hi,

am very new to abap , i have the logic of Prime number in c language , i want to do it in ABAP ,

so kindly help me .

thanks,

Sudhakar

1 ACCEPTED SOLUTION

Former Member
0 Kudos

REPORT Z_PRIME.

data : num type i value 3,

max type i,rem type i,div type i value 2,

flag type boolean.

do.

max = num div 2.

do.

rem = num mod div.

if rem = 0 .

flag = 1.

exit.

endif.

div = div + 1.

if div > max.

exit.

endif.

enddo.

if flag = 0.

write:/ num.

endif.

flag = 0.

num = num + 1.

div = 2.

if num > 100.

exit.

endif.

enddo.

5 REPLIES 5

Former Member
0 Kudos

REPORT ztest1 .

PARAMETERS: p_from TYPE i,

p_to TYPE i.

DATA: v_from TYPE i,

v_to TYPE i,

v_remainder TYPE i,

v_is_prime TYPE c,

v_divisor TYPE i.

START-OF-SELECTION.

v_from = p_from.

v_to = p_to.

DO.

IF v_from = v_to.

EXIT.

ENDIF.

CLEAR v_is_prime.

DO v_from TIMES.

v_divisor = sy-index.

v_remainder = v_from MOD v_divisor.

IF v_divisor <> 1 AND

v_divisor <> v_from AND

v_remainder = 0.

*-- not a prime

v_is_prime = 'N'.

EXIT.

ENDIF.

ENDDO.

IF v_is_prime IS INITIAL.

*-- the number is prime

WRITE:/ v_from, 'is a prime number'.

ENDIF.

v_from = v_from + 1.

ENDDO.

Former Member
0 Kudos

PARAMETERS low TYPE i.
PARAMETERS high TYPE i.

DATA num TYPE i.
DATA is_prime.

num = low.
DO.
PERFORM prime.
IF is_prime EQ 'X'.
WRITE: / num.
ENDIF.
num = num + 1.
IF num GT high.
EXIT.
ENDIF.
ENDDO.


FORM prime.
DATA i TYPE i VALUE 2.
DATA mod TYPE i.
is_prime = 'X'.
DATA max TYPE i.
DATA cnt TYPE i VALUE 0.
max = num / 2.
IF num EQ 4.
is_prime = ' '.
EXIT.
ENDIF.
DO.
IF i GE max.
is_prime = 'X'.
EXIT.
ENDIF.
mod = num MOD i.
IF mod EQ 0. "Not prime
is_prime = ' '.
EXIT.
ENDIF.
cnt = cnt + 1.
IF cnt GT max.
EXIT.
ELSE.
i = i + 1.
ENDIF.
ENDDO.

Former Member
0 Kudos

Hi,

Go thru' the following link in the Forum..

Hope this is Helpful.

Regards,

Chithra

Former Member
0 Kudos

REPORT Z_PRIME.

data : num type i value 3,

max type i,rem type i,div type i value 2,

flag type boolean.

do.

max = num div 2.

do.

rem = num mod div.

if rem = 0 .

flag = 1.

exit.

endif.

div = div + 1.

if div > max.

exit.

endif.

enddo.

if flag = 0.

write:/ num.

endif.

flag = 0.

num = num + 1.

div = 2.

if num > 100.

exit.

endif.

enddo.

Former Member
0 Kudos

hii

chk out this code ...


data: num type i .
data: i type i,
j type i,
c type i,
modu type i.
select-options: value for num.
i = 1.
while i le value-high.
c = 0.
j = 1.
while j le i.
modu = i mod j.
if modu = 0.
c = c + 1.
endif.
j = j + 1.
endwhile.
if c = 2.
write: / i.
endif.
i = i + 1.
endwhile.