SQL 기초 실무/SQL 알고리즘 문제

23.09.29. SQL Developer 알고리즘 문제 ⑩

잇꼬 2023. 10. 4. 11:03
728x90
반응형
SMALL

10. 1부터 10까지 소수만 출력 

 

/* 소수란? 1과 자기 자신외의 약수를 가지지 않는 1보다 큰 자연수 */

-- 예제120. 1부터 10까지 소수만 출력.  
with loop_table as ( select level as num 
                                    from dual 
                                    connect by level <= 10 ) 
select L1.num as 소수1, L2.num as 소수2
    from loop_table L1, loop_table L2
    order by 소수1, 소수2 ; 
    
with loop_table as ( select level as num 
                                    from dual 
                                    connect by level <= 10 ) 
select L1.num as 소수1
    from loop_table L1, loop_table L2
    where mod(L1.num, L2.num) = 0 
    group by L1.num 
    having count(L1.num) = 2 ;

-- 문제1. 1부터 10까지의 소수들의 합은?
undefine p_n 
accept p_n prompt '숫자를 입력하세요.' ;

select sum(소수) 
    from ( 
    with loop_table as ( select level as num 
                                        from dual 
                                        connect by level < &p_n ) 
    select L1.num as 소수 
        from loop_table L1, loop_table L2
        where mod(L1.num, L2.num) = 0 
        group by L1.num 
        having count(L1.num) = 2
            ) ;

-- 문제2. 1부터 10까지의 소수들의 곱은?
select round ( exp( sum( ln(소수) ) ) ) as 곱 
    from ( 
    with loop_table as ( select level as num 
                                        from dual 
                                        connect by level <= 10 ) 
    select L1.num as 소수 
        from loop_table L1, loop_table L2
        where mod(L1.num, L2.num) = 0
        group by L1.num 
        having count(L1.num) = 2
            ) ;
728x90
반응형
LIST