문제는 1978 / 1929 / 6588
결국 소수를 찾아내고 그것을 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)
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)
다른사람의 풀이를 들고왔는데 너무 잘 이해가 잘되서 가져왔다.