나를 기록하다
article thumbnail
반응형

소수 찾기

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초128 MB163685765136113646.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)
  • 풀이과정
    1. def is_prime(x): 소수인지 판별하는 함수 'is_prime'을 정의합니다. 매개변수로 정수 x를 받습니다.
    1. if x < 2: 입력받은 정수 x가 2보다 작은 경우를 확인합니다.
    1. return False x가 2보다 작으면 소수가 아니므로 False를 반환합니다.
    1. i = 2 소수 판별을 위한 변수 i를 2로 초기화합니다.
    1. while i*i <= x: i의 제곱이 x보다 작거나 같을 때까지 반복합니다.
    1. if x % i == 0:

      x를 i로 나눈 나머지가 0인지 확인합니다. 나머지가 0이면 x는 i의 배수입니다.

    1. return False

      x가 i의 배수이면 소수가 아니므로 False를 반환합니다.

    1. i += 1 i 값을 1 증가시켜 다음 수로 이동합니다.
    1. return True

      x가 소수인 경우에는 반복문을 빠져나오고 True를 반환합니다.

    1. n = int(input()) 사용자로부터 정수 n을 입력받습니다. n은 주어질 정수들의 개수입니다.
    1. a = list(map(int,input().split())) 사용자로부터 공백을 기준으로 구분된 정수들을 입력받아 리스트 a에 저장합니다.
    1. ans = 0 소수의 개수를 저장할 변수 ans를 0으로 초기화합니다.
    1. for x in a: 리스트 a의 각 원소 x에 대하여 반복문을 실행합니다.
    1. if is_prime(x): 정수 x가 소수인지 판별하는 함수 is_prime의 결과가 True인지 확인합니다.
    1. ans += 1 x가 소수이면 ans 값을 1 증가시켜 소수의 개수를 누적합니다.
    1. print(ans) 최종적으로 구한 소수의 개수 ans를 출력합니다.


Uploaded by N2T

반응형
profile

나를 기록하다

@prao

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...