반복문 활용4

2022. 9. 22. 19:13파이썬(Python)

반응형

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