★lambda통한 리스트 인덱스값 출력★소수, 에라토스테네스의 ★for문★[백준 파이썬 2581번]소수
2023. 4. 1. 15:37
728x90
반응형
https://www.acmicpc.net/problem/2581
VERSION 2.0
import sys
import math
M = int(sys.stdin.readline())
N = int(sys.stdin.readline())
def is_prime(m):
arr = [True] * (m+1)
arr[0] = False
arr[1] = False
for i in range(2, int(math.sqrt(m))+1) :
if arr[i] == True:
p=2
while i*p <= m: # 배수들 False 만들기
arr[i*p]= False
p+=1
A = list(filter(lambda x : arr[x] == True , range(len(arr))))
return A
A = list(filter(lambda x: x>=M ,is_prime(N)))
if A:
print(sum(A))
print(min(A))
else:
print(-1)
==> Lambda 통한 True 값들 인덱스 값 출력!!!! (제일 중요)!!!!!
VERSION 1.0
import sys
import math
M = int(sys.stdin.readline())
N = int(sys.stdin.readline())
gaet = 0
c=[]
sume = []
for p in range(M,N+1): #자연수 M부터 N까지 FOR문으로 돌린다.
b = (math.trunc(math.sqrt(p)))
if p in (2,3):
c.append(p)
else:
for j in range(2,b+1):
if p % j ==0: #나눠지는게 있으면 소수가 아니다.
break
else:
if j==b: #나눠지는게 for문의 끝까지갔을때 없으면 소수이므로
c.append(p) #c리스트에 추가한다.
else:
continue
if len(c)>=1: #c리스트에 소수가 없을수 있으므로 1개 이상이 있을경우
print(sum(c)) #c리스트내 전체값 더한값
print(c[0]) #처음 c값을 출력한다.
else: #c리스트가 0개인 경우
print(-1) #-1을 출력한다.
에라토스테네스의 체 사용하자.
728x90
반응형
'Python(백준) > 기본 수학 2' 카테고리의 다른 글
[백준 파이썬 9020번]골드바흐의 추측★에라토스테네스의 체★소수판별시 루트값 부여하는것 (1) | 2022.09.23 |
---|---|
[백준 파이썬 11653번]소인수분해★while 문 (0) | 2022.09.23 |