Задачка про общий делитель

Вывести на экран числа от 1 до 100, делящихся на 3 без остатка. Не использовать функцию MOD.

Первый вариант

BEGIN
<<I>>
FOR I IN 1 .. 100 LOOP
IF LENGTH(I / 3) <= 2 THEN
DBMS_OUTPUT.put_line(TO_CHAR(I));
END IF;
END LOOP I;
END;
/

Второй вариант

DECLARE
X PLS_INTEGER;
I PLS_INTEGER := 0;
BEGIN
WHILE (I <= 100) LOOP
BEGIN
I := I + 1;
SELECT LENGTH(I / 3) INTO X FROM DUAL;
IF X <= 2 THEN
DBMS_OUTPUT.put_line(TO_CHAR(I));
END IF;
END;
END LOOP;
END;
/

Третий вариант

DECLARE
X PLS_INTEGER;
BEGIN
FOR I IN 1 .. 100 LOOP
BEGIN
SELECT LENGTH(I / 3) INTO X FROM DUAL;
IF X <= 2 THEN
DBMS_OUTPUT.put_line(TO_CHAR(I));
END IF;
END;
END LOOP I;
END;
/

Tags: , ,

Leave a Reply

You must be logged in to post a comment.