Python
Python 중복 데이터 없이 정수를 입력 받아서 소수와 비소수의 합 구하기
jayden-lee
2019. 5. 11. 18:56
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)