본문 바로가기

prime number

(2)
BOJ 2581 : 소수 문제 자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최솟값은 61이 된다. 풀이 이전 문제와 동일하지만, 범위를 주고 풀어라는게 추가되었다. 이전 문제와 달리 범위가 있으므로 시간복잡도가 증가하게 되면 시간초과가 의심되었다. 그래서 처음부터 전체 소수의 범위를 줬기 때문에 이를 활용해서 prime_list를 구하고 거기서 범위내에 있는 소수들만 추렸다. from re import X import sys if __name__ == '__..
BOJ 1978 : 소수 찾기 문제 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 풀이 소수는 1보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 수이다. 즉 1이면 소수가 아니고, 2이상의 수부터 N까지 나눴을 때, 나누어 떨어지는 수는 제외하면 된다. import sys if __name__ == '__main__': n = int(input()) a = list(map(int, input().split())) count = n for i in a: if i == 1: count -= 1 continue for j in range(2, i): if i % j == 0: count -= 1 break print(count) 이 문제도 갑자기 소수의 정의가 생각이 안나서 다시 찾아보고 풀었다. 근..