TEAM STUDY/PYTHON

직사각형의 넓이로 변의 길이 구하기

Binsoo 2021. 1. 9. 10:56
728x90
반응형

이번주 계획

  1.  직사각형의 넓이로 변의 길이 구하기
  2.  반목문 건너뛰기와 여러 범위 스캔하기
  3.  다중 루프 알아보기

변의 길이와 넓이가 모두 정수인 직사각형에서 변의 길이를 구하는 프로그램.

이 때 짧은 변과 긴 변의 길이는 구별하지 않습니다.

예를들어 직사각형의 넓이가 32면 변의 길이는 1 * 32 ,  1 * 16 , 4 * 8 만 출력합니다.

2 * 16 은 이미 출력했으므로 16 * 2 는 출력하지 않습니다.

 

area = int(input('직사각형의 넓이를 입력하세요 : '))

for i in range( 1, area+1 ) :
	if i*i > area :
    	break
    if area % i :
    	continue
    print( f'{i} * {area//i}' )

 

첫번째 if 문

i * i 가 area를 초과하면 for문을 강제 종료 합니다.

그 이유는 i가 가장 긴 변의 길이가 되기 때문입니다.

예를 들어 i가 6이 되면 6 * 6  = 36 이므로 사각형의 최대 넓이 (32) 를 초과하면서도

가장 긴 변의 길이가 되므로 프로그램을 종료한다.

 

 

두번째 if 문

continue 문은 area가 i로 나누어 떨어지지 않으면 for문의 다음 반복으로 진행 된다.

area 가 i가 나누어 떨어지지 않으면 i는 변의 길이 (약수)가 될 수 없습니다.

예를 들어 i가 3이면 32%3는 나머지 2 이므로 3은 약수가 아니다.

따라서 출력할 필요가 없다.

 


import random

n = int(input('난수의 개수를 입력하세요 : ' ))

for _ in range(n) :
	r = random.randint( 10, 99 )
    print( r, end='' )
    if r == 13 :
    	print('난수 13이 발생했으므로 프로그램을 종료 합니다')
        break
    else :
    	print('난수 생성을 종료합니다.')

 

for문을 사용하여 2자리 정수인 난수를 n개 생성하여 출력합니다.

이 과정에서 13이 생성될 경우 break 문으로 반복문을 강제 종료 합니다.

 

실행 결과와 같이 13 이후 난수는 출력되지 않고 else 문조 실행되지 않습니다.

728x90
반응형