본문 바로가기
Python

Python 중복 데이터 없이 정수를 입력 받아서 소수와 비소수의 합 구하기

by jayden-lee 2019. 5. 11.
728x90

중복되는 데이터 없이 정수를 입력 받아서 리스트 a를 만든다. 리스트의 원소 중 비소수의 합과 소수의 합을 출력하는 함수를 작성한다. 만약 2보다 작은 수를 입력하면 안내 메시지를 출력한다.

import math

def isPrime(n):
    sqrt = int(math.sqrt(n)) + 1

    for i in range(2, sqrt):
        if n % i == 0:
            return False

    return True

def printPrime(a):
    primeResult = 0
    nonPrimeResult = 0

    for i in range(len(a)):
        if isPrime(a[i]):
            primeResult += a[i]
        else:
            nonPrimeResult += a[i]

    print('소수의 합 : ', primeResult)
    print('비소수의 합 : ', nonPrimeResult)

a = []

while True:
    number = int(input('정수 입력(종료는 9999를 입력하세요) : '))

    if number < 2:
        print('2 이상의 수만 입력하세요.')
        continue

    if number == 9999:
        break

    if number not in a:
        a.append(number)

print('생성된 리스트 : ', a)

printPrime(a)

 

댓글