실습:
양의 정수 n,m을 입력 받고,
n부터 m까지 정수 중 소수를 출력하고,
총 소수의 개수를 출력하는 코드를 제출하시오. [15점]
(m ≥ n, n ≤ 50, m ≤ 50)
소수는 1과 자기 자신만을 약수로 가지는 수이다(2,3,5,7,11,13,...)
[입출력 예시]
# 입력
2 13
# 출력
2
3
5
7
11
13
6
[채점기준]
1. 소수만 출력하는 경우 10점
2. 소수 개수만 출력하는 경우 5점
3. 입력받지 않고 변수에 바로 저장하여 출력하는 경우 -2점
[입력 예제]
괄호의 있는 정보는 조건문
첫번째
1 1
두번째
2 10
세번째
5 2
네번째
9 50
다섯번째
17 51
여섯번째
89 200
이론:
'''
다음 문장을 읽고 옳은지 틀린지 O,X로 표시한 후, 틀린 문장은 알맞게 고치시오.
[10점]
1. [2점] while 루프는 조건문이 거짓이 되기 전까지 계속 실행되기 때문에 "불확정 루프"라고 불린다. ( O )
2. [2점] 문자열에 정수값 1을 더할 수 있다. ( X )
3. [2점] fruit = 'banana' → print(fruit[0]) 와 같이 문자열의 개별 문자에 인덱스를 활용하여 접근할 수 있다. ( O )
4. [2점] 문자열 슬라이싱 a[0:3]은 문자열의 인덱스 0부터 인덱스 3까지의 문자를 슬라이싱한다. ( O )
5. [2점] 튜플은 값을 변경하거나 순서를 바꿀 수 없다.
'''
각 코드란에 각자 이름 주석처리 부탁드려요!
# 박소정
''' 실습 문제 '''
n, m = input().split()
n = int(n)
m = int(m)
cnt = 0
for i in range(n, m + 1):
if(i>1):
flag = 1
for j in range(2, i):
if i % j == 0:
flag = 0
break
if flag == 1:
print(i)
cnt = cnt + 1
print(cnt)
''' 이론문제 '''
'''
1. [2점] while 루프는 조건문이 거짓이 되기 전까지 계속 실행되기 때문에 "불확정 루프"라고 불린다.
- > 정답
2. [2점] 문자열에 정수값 1을 더할 수 있다.
- > 오답, 더할 수 없다. 정수는 정수끼리, 문자열은 문자열끼리 연산이 가능하기 때문.
3. [2점] fruit = 'banana' → print(fruit[0]) 와 같이 문자열의 개별 문자에 인덱스를 활용하여 접근할 수 있다.
- > 정답
4. [2점] 문자열 슬라이싱 a[0:3]은 문자열의 인덱스 0부터 인덱스 3까지의 문자를 슬라이싱한다.
- > 오답, 인덱스 0부터 인덱스 2까지의 문자를 슬라이싱 한다.
5. [2점] 튜플은 값을 변경하거나 순서를 바꿀 수 없다.
- > 정답
'''
# 염예은
n, m = input().split() # n,m 입력받음 (문자로)
n = int(n)
m = int(m)
cnt=0
for i in range(n,m+1,1):
for j in range(2,i+1,1):
if i==j:
print("%d"%i)
cnt+=1
if i%j==0:
break
print("%d"%cnt)
'''
이론문제
다음 문장을 읽고 옳은지 틀린지 O,X로 표시한 후, 틀린 문장은 알맞게 고치시오.
[10점]
O 1. [2점] while 루프는 조건문이 거짓이 되기 전까지 계속 실행되기 때문에 "불확정 루프"라고 불린다. O
X 2. [2점] 문자열에 정수값 1을 더할 수 있다. ->문자열은 문자열끼리, 숫자는 숫자끼리 더할 수 있다.
O 3. [2점] fruit = 'banana' → print(fruit[0]) 와 같이 문자열의 개별 문자에 인덱스를 활용하여 접근할 수 있다.
X 4. [2점] 문자열 슬라이싱 a[0:3]은 문자열의 인덱스 0부터 인덱스 3까지의 문자를 슬라이싱한다. ->0부터 2까지 문자를 슬라이싱한다.
O 5. [2점] 튜플은 값을 변경하거나 순서를 바꿀 수 없다.
'''
# 신재현
# 소수 판별 함수
def isPrime(N):
if N < 2:
return False
else :
for i in range(2, N):
if N % i == 0:
return False
print(N)
return True
# 범위 내 소수 체크
# n부터 m까지
def PrimeCheck(n, m):
if n > m or n > 50 or n <= 0 or m > 50 or m <= 0:
print("Invalid Input")
return -1
else :
cnt = 0
for i in range(n, m + 1):
if isPrime(i):
cnt += 1
return cnt
# main 함수
def main():
n, m = map(int, input().split())
cnt = PrimeCheck(n, m)
if cnt != -1 :
print(cnt)
# 실행
if __name__ == "__main__":
main()
'''
다음 문장을 읽고 옳은지 틀린지 O,X로 표시한 후, 틀린 문장은 알맞게 고치시오.
[10점]
1. [2점] while 루프는 조건문이 거짓이 되기 전까지 계속 실행되기 때문에 "불확정 루프"라고 불린다. ( O )
2. [2점] 문자열에 정수값 1을 더할 수 있다. ( X )
3. [2점] fruit = 'banana' → print(fruit[0]) 와 같이 문자열의 개별 문자에 인덱스를 활용하여 접근할 수 있다. ( O )
4. [2점] 문자열 슬라이싱 a[0:3]은 문자열의 인덱스 0부터 인덱스 3까지의 문자를 슬라이싱한다. ( X )
5. [2점] 튜플은 값을 변경하거나 순서를 바꿀 수 없다. ( O )
ㄴ 변경이 되었다는 것은 튜플이 새로 생성된 경우
ㄴ 변경을 필요로 할 때, list로 형 변환을 거침
'''
# 김준혁
# 입력 받기
n, m = map(int, input().split())
# 소수 저장 리스트
p_n = []
for i in range(n, m + 1):
if i <= 1:
continue
is_p = True
for j in range(2, int(i ** 0.5) + 1):
if i % j == 0:
is_p = False
break
if is_p:
p_n.append(i)
print(i)
# 총 소수 개수 출력
print(len(p_n))
'''
다음 문장을 읽고 옳은지 틀린지 O,X로 표시한 후, 틀린 문장은 알맞게 고치시오.
[10점]
1. [2점] while 루프는 조건문이 거짓이 되기 전까지 계속 실행되기 때문에 "불확정 루프"라고 불린다. ( O )
2. [2점] 문자열에 정수값 1을 더할 수 있다. ( X )
-> 같은 형끼리 계산이 가능하다.
3. [2점] fruit = 'banana' → print(fruit[0]) 와 같이 문자열의 개별 문자에 인덱스를 활용하여 접근할 수 있다. ( O )
4. [2점] 문자열 슬라이싱 a[0:3]은 문자열의 인덱스 0부터 인덱스 3까지의 문자를 슬라이싱한다. ( X )
-> 0이상 3미만 즉, 0부터 2까지 문자를 슬라이싱
5. [2점] 튜플은 값을 변경하거나 순서를 바꿀 수 없다. ( O )
'''
# 백한결
a,b = input().split()
a=int(a)
b=int(b)
cnt =0
for i in range(a,b+1):
if(i>1):
n =1
for j in range(2,i):
if i%j==0:
n=0
break
if n ==1:
print(i)
cnt +=1
print(cnt)
1. [2점] while 루프는 조건문이 거짓이 되기 전까지 계속 실행되기 때문에 "불확정 루프"라고 불린다. ( O )
2. [2점] 문자열에 정수값 1을 더할 수 있다. (같은 형끼리 가능) ( X )
3. [2점] fruit = 'banana' → print(fruit[0]) 와 같이 문자열의 개별 문자에 인덱스를 활용하여 접근할 수 있다. ( O )
4. [2점] 문자열 슬라이싱 a[0:3]은 문자열의 인덱스 0부터 인덱스 3까지의 문자를 슬라이싱한다. ( x )
5. [2점] 튜플은 값을 변경하거나 순서를 바꿀 수 없다. ( O )