본문 바로가기
Coding 문제 풀이

[2581번]소수 코딩

by 김수호님 2018. 12. 17.
728x90
반응형

문제


자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오.

예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최솟값은 61이 된다.




코딩

M=int(input())
N=int(input())
def findprime(num):#소수 판별하는 함수
    if num==1:
        return 0
    if num==2:
        return 1
    a=int(num/2)
    for x in range(2,a+1):
        if num%x==0:
            return 0
    return 1

def totalprime(m,n):#소수 합, 최소값 구하는 함수
    total=0
    min_num=0
    for x in range(m,n+1):
        if findprime(x):
            total+=x
            if not min_num or min_num>x:
                min_num=x
    if not total:
        print(-1)
    else:
        print(total)
        print(min_num)
  
totalprime(M,N)


728x90
반응형

'Coding 문제 풀이' 카테고리의 다른 글

[10828번]스택 코딩  (0) 2018.12.17
[1929번]소수 구하기 코딩  (0) 2018.12.17
[6064번]카잉 달력 코딩  (2) 2018.12.17
[1475번] 방 번호  (0) 2018.12.17
[2775번]부녀회장이 될테야 코딩  (1) 2018.12.17