반응형
소수 찾기
시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
2 초 | 128 MB | 163685 | 76513 | 61136 | 46.603% |
문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
출력
주어진 수들 중 소수의 개수를 출력한다.
예제 입력 1
4
1 3 5 7
예제 출력 1
3
풀이
def is_prime(x):
if x < 2:
return False
i = 2
while i*i <= x:
if x % i == 0:
return False
i += 1
return True
n = int(input())
a = list(map(int,input().split()))
ans = 0
for x in a:
if is_prime(x):
ans += 1
print(ans)
- 풀이과정
def is_prime(x):
소수인지 판별하는 함수 'is_prime'을 정의합니다. 매개변수로 정수 x를 받습니다.
if x < 2:
입력받은 정수 x가 2보다 작은 경우를 확인합니다.
return False
x가 2보다 작으면 소수가 아니므로 False를 반환합니다.
i = 2
소수 판별을 위한 변수 i를 2로 초기화합니다.
while i*i <= x:
i의 제곱이 x보다 작거나 같을 때까지 반복합니다.
if x % i == 0:
x를 i로 나눈 나머지가 0인지 확인합니다. 나머지가 0이면 x는 i의 배수입니다.
return False
x가 i의 배수이면 소수가 아니므로 False를 반환합니다.
i += 1
i 값을 1 증가시켜 다음 수로 이동합니다.
return True
x가 소수인 경우에는 반복문을 빠져나오고 True를 반환합니다.
n = int(input())
사용자로부터 정수 n을 입력받습니다. n은 주어질 정수들의 개수입니다.
a = list(map(int,input().split()))
사용자로부터 공백을 기준으로 구분된 정수들을 입력받아 리스트 a에 저장합니다.
ans = 0
소수의 개수를 저장할 변수 ans를 0으로 초기화합니다.
for x in a:
리스트 a의 각 원소 x에 대하여 반복문을 실행합니다.
if is_prime(x):
정수 x가 소수인지 판별하는 함수 is_prime의 결과가 True인지 확인합니다.
ans += 1
x가 소수이면 ans 값을 1 증가시켜 소수의 개수를 누적합니다.
print(ans)
최종적으로 구한 소수의 개수 ans를 출력합니다.
Uploaded by N2T
반응형
'Algorithm' 카테고리의 다른 글
[백준 2609 파이썬/python] 최대공약수와 최소공배수 (0) | 2023.04.09 |
---|---|
[백준 1934 파이썬/python] 최소공배수 (0) | 2023.04.09 |
[백준 17299 파이썬/python] 오등큰수 (0) | 2023.04.09 |
[백준 17298 파이썬/python] 오큰수 (0) | 2023.04.08 |
[백준 10799 파이썬/python] 쇠막대기 (0) | 2023.04.08 |