미새문지

24.06.24 day8 코드트리 다중반복문(별문제 학습 중) 본문

개발 TIL

24.06.24 day8 코드트리 다중반복문(별문제 학습 중)

문미새 2024. 6. 24. 23:09
728x90

소수 판별기

소수는 1보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 수입니다. 숫자 n이 주어졌을 때, n이 소수인지 판단하는 프로그램을 작성해보세요.

a = int(input())
exist = False

for i in range(2, a):
    if a % i == 0:
        exist = True

if exist:
    print('C')
else:
    print('P')

1은 소수가 아니기 때문에 2부터 시작해서 a전까지 각 정수값을 나눠 나머지가 있는지 확인한다. 나머지가 없으면 소수가 아니기 때문에 하나라도 있을 시 exist값을 True로 변경. 이 후 반복문을 다 돌고 소수면 P 소수가 아니면 C를 출력


별표 출력하기 5

정수 n의 값을 입력받아 별표를 출력하는 프로그램을 아래 예를 참고하여 작성해보세요.

 

예)

n에 2를 입력받는 경우

** **
*

n에 3을 입력받는 경우

*** *** ***
** ** 
*

 

a = int(input())

for i in range(a):
    for j in range(a-i, 0, -1):
        for k in range(a-i, 0, -1):
            print('*', end='')
        print(' ', end='')
    print()

백준 풀 때도 생각했는데 반복문의 규칙을 찾아서 푸는 문제는 별문제가 되게 좋은 것 같다. 어떻게 기댓값대로 출력할 지 머리를 쓰게 되는 듯


별표 출력하기 3

정수 n의 값을 입력받아 별표를 출력하는 프로그램을 아래 예를 참고하여 작성해보세요.

 

예)

n에 2를 입력받는 경우

* * *
  *
 

n에 3을 입력받는 경우

* * * * *
  * * *
    *

 

a = int(input())

for i in range(0, a*2, 2):
    if i > 0:
        for start in range(i//2):
            print(' ', end=' ')

    for j in range(a*2-1, i, -1):
        print('*', end=' ')

    if i > 0:
        for start in range(i//2):
            print(' ', end=' ')
    
    print()

공백이랑 별을 한번에 어떻게 출력할지 고민하다가 설명에 맞게 공백과 별을 따로 분리해서 출력했다.

728x90