본문 바로가기
작업/Problem Solving

백준 1978(소수 찾기) 파이썬(python) 해결

728x90

문제

주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.

입력

첫 줄에 수의 개수 N이 주어진다. N은 100이하이다.

다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.

 

 

 

 

이전 C언어 공부할 때 소수 찾는 코드를 만들어 놓은 것이 있습니다.

 

 

 

2020/05/12 - [작업/C 언어] - Perfect C 프로그래밍 연습 7장 4, 5번 해결

 

Perfect C 프로그래밍 연습 7장 4, 5번 해결

7장부터는 반복문을 포함하는 문제들이 많이 나올 것이기 때문에 어떤 순서대로 처리가 이루어지는지, 처리 후의 값은 어떻게 되는지 순차적으로 적어가면서 해결해 보면 이해가 쉬울 것입니다

zifmfmphantom.tistory.com

 

 

제곱근을 사용한 방법으로 소수를 간단하게 찾아내는 코드를 활용하겠습니다.

 


python3 소스코드

 

#백준 소수 찾기 1978
import math
test = int(input())
testlist = list(map(int,input().split()))

#소수 개수 저장
prvalue = 0

#1의 값이 들어있다면 1을 제거
if 1 in testlist:
    testlist.remove(1)

#1을 없앤 정제된 값을 튜플로 만듦
testvalue = tuple(testlist)

#제곱근을 활용하여 소수 찾기
for lis in testvalue:
    count = 0
    for compare in range(1, int(math.sqrt(lis))+1):
        if lis % compare == 0:
            count += 1

    if count == 1:
        prvalue += 1

print(prvalue)

 

 

코드는 난잡해 보일 수 있겠지만 내부에서 작동할 때에는 간단하게 값을 추려낼 수 있습니다.

 

 

-끝-

 

 

 

 

728x90