백준 문제 1주

BackEnd_Ash.log·2021년 1월 29일
0

백준

목록 보기
1/1

문제는 1978 / 1929 / 6588

1978

https://www.acmicpc.net/problem/1978

결국 소수를 찾아내고 그것을 count 하면 되는 문제이다.
소수라는 개념을 명확히 잡을 필요가 있을것 같아서 ,
어렴풋이 알고있지만 혹시나 싶어 다시 검색을 해봤다 .

1 보다 크며 1 과 자기 자신만 약수를 가지고 있는 수

를 소수라고 한다 .

Case         = int(input())
num_list     = list(map(int, input().split()))
res_counting = 0

for i in num_list:
    cnt = 0
    if(i == 1):
        continue

    for j in range(2, i + 1):
        if(i % j == 0):
            cnt += 1

    if(cnt == 1):
        res_counting += 1
print(res_counting)

1929

https://www.acmicpc.net/problem/1929
https://leejunggae.tistory.com/3

one_num , two_num = list(map(int, input().split()))

def solution(one_num , two_num):
    chk_list   = [True , True] + [False for _ in range(2 , two_num)] # 소수인지 판별
    prime_list = []

    for _ in range(2 , len(chk_list)):
        if chk_list[_] == True:
            continue

        prime_list.append(_)
        chk_list[_] = True

        for j in range(_ , len(chk_list) , _):
            chk_list[j] = True
    result = []
    for num in range(one_num , two_num+1):
        if num in prime_list:
            result.append(num)

    for n in result:
        print(n)

solution(one_num , two_num)

두번째풀이

m, n = map(int, input().split())

def isprime(m, n):
  n     += 1                            # for문 사용을 위한 n += 1
  prime  = [True] * n                # n개의 [True]가 있는 리스트 생성

  for i in range(2, int(n**0.5)+1): # n의 제곱근까지만 검사
    if prime[i]:                    # prime[i]가 True일때
      for j in range(i * 2, n, i):    # prime 내 i의 배수들을 False로 변환
        prime[j] = False

  for i in range(m, n):
    if i > 1 and prime[i] == True:  # 1 이상이면서 남은 소수들을 출력
        print(i)

isprime(m, n)

다른사람의 풀이를 들고왔는데 너무 잘 이해가 잘되서 가져왔다.

6588

https://www.acmicpc.net/problem/6588

profile
꾸준함이란 ... ?

0개의 댓글