1. 언제 끝날지 모를 때
- 무한 루프 이용 => 원하는 조건을 만족했을 때 break로 루프 탈출
Q) 최초의 홀수
- 짝수 n을 입력. (홀수 입력 시 짝수를 다시 입력)
- 홀수가 아닐 때까지 2로 계속 나누기.
- 최초로 홀수가 되는 순간. 그때의 홀수 값 출력
while True:
n=int(input())
if n%2!=0:
print('짝수를 입력')
continue
else:
break
cnt=1
while True:
if n%2==0:
print(f'{cnt}. {n} : 짝수')
n=n//2
cnt+=1
else:
print(f'{cnt}. {n} : 홀수')
break
결과
>> 99
짝수를 입력
>> 9
짝수를 입력
>> 88
1. 88 : 짝수
2. 44 : 짝수
3. 22 : 짝수
4. 11 : 홀수
Q) 조건에 따른 연산
- 자연수 n을 입력. 조건에 맞게 연산하여 1000 이상이 되면 종료
- n이 짝수일 때, n에 3을 곱하고 1을 더하기
- n이 홀수일 때, n에 2를 곱하고 2를 더하기
- 각 연산의 횟수와 연산의 식, 결과를 출력
n=int(input())
cnt=1
while True:
if n%2==0:
print(f'{cnt}. {n} * 3 + 1 = {n*3+1}')
n=n*3+1
else:
print(f'{cnt}. {n} * 2 + 2 = {n*2+2}')
n=n*2+2
cnt+=1
if n>=1000:
break
결과
>> 123
1. 123 * 2 + 2 = 248
2. 248 * 3 + 1 = 745
3. 745 * 2 + 2 = 1492
2. 단 하나라도 만족할 때
ex) a, b, c 중 하나라도 짝수가 있는지 판단
- a, b, c가 3개인 것처럼 개수가 정해져 있는 경우 if, or 연산을 사용
if a%2==0 or b%2==0 or c%2==0:
print('짝수')
ex) 두 수 a, b가 있을 때, a부터 b사이에 있는 수들 중 하나라도 짝수가 있는지 판단
- a부터 b까지 수들을 일일이 확인 => for loop
- 조건을 만족하는지 판단 => bool type 변수 활용
- bool type : True, False 가짐
- bool type의 변수 초기값을 False
- 조건을 만족 => bool type 변수를 True로 바꿈
inp=input().split()
a,b=int(inp[0]),int(inp[1])
booltype=False
for i in range(a,b+1):
if i%2==0:
booltype=True
if booltype==True:
print('even exists')
else:
print('even not exists')
결과
>> 3 3
even not exists
>> 3 5
even exists
Q) 합성수 판별
- 자연수 n을 입력하여 합성수가 맞는지 판단하는 프로그램
- 합성수 : 1보다 큰 소수가 아닌 수
n=int(input())
booltype=False
for i in range(2,n):
if n%i==0:
booltype=True
if booltype==True:
print('Yes')
else:
print('No')
- 소수는 약수가 1과 자기 자신인 수 2개만 있는 수를 말한다.
- n의 약수가 1, n 2개라면 n은 소수이다.
- n의 약수가 2 ~ n-1 중의 하나라도 있으면 합성수이다.
결과
>> 6
Yes
>> 11
No
3. 모두 만족할 때
- a, b, c 모두 짝수인지 판단.
- a, b, c가 3개인 것처럼 개수가 정해져 있는 경우 if, and 연산을 사용.
if a%2==0 and b%2==0 and c%2==0:
print('짝수')
ex) 두 수 a, b가 있을 때, a부터 b사이에 있는 수들 모두 짝수가 맞는지 판단
- a부터 b까지 수들을 일일이 확인 => for loop
- 조건을 만족하는지 판단 => bool type 변수 활용
- bool type의 변수 초기값을 True
- 조건을 만족 => bool type 변수를 False로 바꿈
inp=input().split()
a,b=int(inp[0]),int(inp[1])
booltype=True
for i in range(a,b+1):
if i%2!=0:
booltype=False
if booltype==True:
print('all even')
else:
print('not all even')
결과
>> 4 4
all even
>> 4 6
not all even
Q) 소수 판별
- 자연수 n을 입력. n이 소수인지 판단하는 프로그램
n=int(input())
booltype=True
for i in range(2,n):
if n%i==0:
booltype=False
if booltype==True:
print('Yes')
else:
print('No')
- 소수는 약수가 1과 자기 자신만 있는 수
- 자연수 n의 약수가 2 ~ n-1 중에 하나라도 있으면 소수가 아님
결과
>> 19
Yes
>> 20
No
'파이썬(Python)' 카테고리의 다른 글
다중 반복문2 (0) | 2022.09.24 |
---|---|
다중 반복문1 (0) | 2022.09.24 |
반복문 활용3 (0) | 2022.09.21 |
반복문 활용2(합, 곱) (0) | 2022.09.20 |
반복문 활용 (0) | 2022.09.19 |