728x90
문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다.
다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
이전 C언어 공부할 때 소수 찾는 코드를 만들어 놓은 것이 있습니다.
2020/05/12 - [작업/C 언어] - Perfect C 프로그래밍 연습 7장 4, 5번 해결
제곱근을 사용한 방법으로 소수를 간단하게 찾아내는 코드를 활용하겠습니다.
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
'작업 > Problem Solving' 카테고리의 다른 글
백준 9020(골드바흐의 추측) 파이썬(python) 해결 (0) | 2020.12.25 |
---|---|
백준 4948(베르트랑 공준) 파이썬(python) 해결 (0) | 2020.12.25 |
백준 10250(ACM 호텔) 파이썬(python) 해결 (0) | 2020.09.10 |
백준 2775(부녀회장이 될테야) 파이썬(python) 해결 (0) | 2020.09.10 |
백준 2869(달팽이는 올라가고 싶다) 파이썬(python) 해결 (2) | 2020.08.20 |