05-15-2006 7:15 AM
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
05-15-2006 7:37 AM
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.
05-15-2006 7:19 AM
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.
05-15-2006 7:22 AM
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.
05-15-2006 7:30 AM
05-15-2006 7:37 AM
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.
05-15-2006 7:38 AM
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.