전체 글74 다중반복문 - 소수 구하기(bloon 변수활용) N이 주어질때, 1이상 N이하의 소수를 오름차순으로 출력하는 프로그램을 작성해라 1. 1부터 N이하의 값들 하나하나를 2부터 n까지의 각 숫자들을 나누어 나머지가 0인 값이 있다면 -> 소수가 아님 없다면 -> 소수임. 2. is_prime이라는 bool type 변수를 만들어 초기값을 True, 단 한번이라도 나누어 떨어지는 순간에 is_prime값을 false로 설정해줌. 이를 통해 1부터 n사이의 소수를 전부 구할 수 있게 된다. * 단 한번이상 나타날때 bloon 변수를 활용해주는 것이 좋다.# 변수 선언 및 입력n = int(input()) # 1부터 n까지 소수를 구합니다.for i in range(1, n + 1): if i == 1: continue isprime = .. 2025. 3. 4. 다중반복문 - 완전 수 어떤 수 n의 완전수 구해라 (진약수 : n을 나누어 떨어지게 하는 양수 중에서 n이 아닌 수. 이때 n의 진약수의 총합이 n과 같다면, n을 완전수라고 합니다.) 예로, 28의 진약수는 1,2,4,7,14이고 이들의 합은 28이므로, 28은 완전수이다. 문제: 두 정수 start, end가 주어진다. start이상 end이하인 완전수의 갯수를 세는 프로그램을 작성해라. 1. start이상 end까지의 정수를 순회하며 각 숫자의 약수의 합을 계산 2. 특정 숫자 n의 (자기 자신을 제외한) 약수의 합을 알아내기 위해 1부터 n-1까지의 숫자들로 n을 나눠보며 나머지가 0인 수들을 구한다. 3. 2에서 구한 수들의 합을 계산한다. 4. 조건문을 주어 약수의 합이 n이면 정답 갯수를 1 증가 시켜준다. s.. 2025. 3. 4. 다중반복문 - M번에 걸친 3N + 1 수열에서 N이 1이되는데 걸리는 횟수 자연수 N이 주어짐. N에서 시작해서 N이 짝수면 2로 나누고, N이 홀수면 3을 곱하고 1을 더하는 것을 N이 1이 되기 전까지 계속 반복 총 몇 번을 반복해야 1이 되는지를 계산하는 프로그램 작성하기 ex. N=3 3->(3*3+1)->5->(5*3+1)->8->4->2->1 총 7번 이 문제는 총 M번에 걸쳐 N값이 주어짐. 각각의 경우에 대해 주어진 N이 1이 되는지 걸리는 횟수를 구해라. 첫번째 줄에 M이 주어짐. 두번쨰 줄부터 M개의 줄에 걸쳐 N이 한줄에 하나씩 주어짐. 1. M개에 따라 N값들이 주어지므로, M번 행마다 N값들이 input됨. 2. 인풋된 값을 a라 두고, a가 홀수면, a*3+1 / 짝수면 a/2를 반복을 a=1이 될때까지 해야함. 3. 2번에서 반복될때마다 1씩 증가하.. 2025. 3. 4. 다중반복문 - ab곱 N번 구하기 정수 N와 N개의 a,b 쌍이 주어짐. a부터 b까지의 곱셈을 구해라. 첫줄에 N이 주어지고 두번째 줄부터 각줄마다 a,b가 주어진다. 11예제1 3 1 4 6 8 2 5 출력 24 336 120 1. n이 주어지고 a,b도 주어짐. > 첫행인 a=1, b=4일때 1*2*3*4 = 24이 출력됨. > 두번째 행인 a=6, b=8일때 6*7*8 = 336이 출력됨 2. 행에 따라 a, b를 input하고 행마다 곱을 구해서 출력해야 함 3. 행마다 곱을 구해야 하므로 다음 행에 들어갈때 합을 구하는 변수는 1로 초기화 되어야 함. n = int(input())for _ in range(n) : a, b = map(int, input().split()) ab_double = 1 for.. 2025. 3. 4. 다중반복문 - n번반복하기 3줄에 걸쳐 합을 구하고 싶은 (a,b) 쌍이 한줄에 한쌍씩 총 3개의 쌍이 주어짐. 각 쌍마다 a ~ b 사이의 합을 구해 출력하는 코드를 구해라. ex) 입력값 3 1 4 6 8 2 5 출력 10 21 14 1. n이 주어지고 a,b도 주어짐. > 첫행인 a=1, b=4일때 1+2+3+4 = 10이 출력됨. > 두번째 행인 a=6, b=8일때 6+7+8 = 21이 출력됨 2. 행에 따라 a, b를 input하고 행마다 합을 구해서 출력해야 함 3. 행마다 합을 구해야 하므로 다음 행에 들어갈때 합을 구하는 변수는 0으로 초기화 되어야 함. for _ in range(3): arr = input().split() a, b = int(arr[0]), int(arr[1]) sum_va.. 2025. 3. 4. 다중반복문 - 알파벳 출력하기2 정수 N이 주어질때, 아래 규칙에 맞게 영문자를 출력하라. 단, Z다음에는 A가 나와야 한다. ex) N= 2 A B C N = 3 A B C D E F 1) 공백과 알파벳 모두 포함하면, 행과 열이 같은 행렬이다. > 이때 행(i)가 열(j)보다 클때, 공백을 출력하고 그외의 경우 알파벳을 출력한다. > i와 j의 조건문에 따라 i>j일떄는 공백을, i2) i즉, 행과 열의 규칙에 상관없이 아스키 문자에 대응한 숫자가 차례대로 증가하여 출력된다. > cnt 카운터 변수를 사용한다. n = int(input())cnt = ord("A")for i in range(n) : for j in range(n) : if i > j : print(' ', .. 2025. 3. 4. 이전 1 2 3 4 5 6 7 ··· 13 다음