BOJ_1978 : 소수 찾기

김진현·2021년 3월 2일
0

BOJ

목록 보기
5/33

출처 : https://www.acmicpc.net/problem/1978

문제

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

입력

첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.

출력

주어진 수들 중 소수의 개수를 출력한다.


아이디어

input number와 그보다 작은 모든 수와의 gcd가 모두 1이라면 해당 number는 소수다.


코드

Mine

def gcd(a,b):
    if a<b:
        a, b = b, a
    while b != 0:
        a, b = b, a%b
    return a

def prime(a):
    for i in range(2, a):
        if gcd(i,a) == 1:
            return True
        else:
            return False

N = int(input())
data = list(map(int,input().split()))

for i in range(N):
    data[i] = prime(data[i])
print(data.count(True))

Solution

출처 : https://rebas.kr/644

def prime(n):
    if n < 2:
        return False
    for i in range(2, n):
        if i*i > n:
            break
        if n % i == 0:
            return False
    return True


input()
a = list(map(int, input().split()))
cnt = 0
for x in a:
    if prime(x) is True:
        cnt += 1
print(cnt)

개선사항

0개의 댓글

관련 채용 정보