예제18
while 반복문을 사용해서 숫자 1부터 10까지 출력하세요(1)
분석
1. i = 0 로 저장한다.
2. while의 조건은 10이하만 출력할 수 있도록 i<11로 한다.
3. 조건이 맞으면 i를 1 단위 더 해준다.
4. i를 출력한다.
설계

구현
i = 0
while i<10:
i += 1
print(i,end=" ")
예제19
for 반복문을 사용해서 숫자 1부터 10까지 출력하세요(1)
분석
1. for i in range(1,11)로 1부터 10까지 차례대로 i에 저장한다.
2. i를 출력한다.
설계

구현
for i in range(1,11):
print(i,end=" ")
예제20
반복문을 사용해 숫자 10부터 1까지 출력하세요
:i가 10부터 1씩 감소하며 1이 될 때까지 반복하며 i 값을 출력한다.
분석
1. for i in range(10,0,-1) 로 10부터 1씩 감소시켜 차례대로 i에 저장한다.
2. i를 출력한다.
설계

구현
for i in range(10,0,-1):
print(i,end=" ")
예제21
숫자 1부터 100까지의 합 구하세요.
분석
1. sum = 0 으로 저장한다.
2. for i in range(1,101)로 1부터 100까지 1단위로 차례대로 저장한다.
3. sum += i 로 i를 sum에 더 한다.
5. sum을 출력한다.
설계

구현
sum = 0
for i in range(1,101):
sum += i
print(sum)
예제22
1부터 100까지의 수 중 짝수의 합 구하기(1)
: i가 2부터 2씩 증가하며 100이 될 때까지 반복하며, 변수 sum에 i 값을 누적합니다.
분석
1. sum = 0 으로 저장한다.
2. for i in range(2,101,2)로 2부터 100까지 2단위 증가하여 i에 저장한다.
3. sum += i 에 i값을 sum에 더 한다.
5. sum을 출력한다.
설계

구현
sum = 0
for i in range(2,101,2):
sum += i
print(sum)
예제23
1부터 100까지의 수 중 짝수의 합 구하기(2)
분석
1. sum = 0 으로 저장한다.
2. for i in range(1,101) 로 1부터 100까지 i에 저장한다.
3. if i%2 == 0으로 짝수를 구분하고,
4. 참이면 sum에 i 값을 누적한다.
6. sum을 출력한다.
설계

구현
sum = 0
for i in range(1,101):
if i%2 == 0:
sum += i
print(sum)
예제24
1, -2, 3, -4, ..., 99, -100의 합 구하기
분석
1. sum = 0 으로 저장한다.
2. for i in range(1,101)로 1부터 100까지 순서대로 i에 저장한다.
3. if i%2 == 0 인 경우에만 sum에 i값을 빼고
4. 아닌 경우에는 sum에 i값을 더 한다.
6. sum을 출력한다.
설계

구현
sum = 0
for i in range(1,101):
if i%2 == 0:
sum -= i
else:
sum += i
print(sum)
예제25
계승(!, 팩토리얼) 구하기
분석
1. facto = 1 로 저장한다.
2. for i in range(5,0,-1)로 5부터 1까지 -1단위 감소하여 i에 저장한다.
3. facto *= i 로 각각 곱한다.
5. facto 를 출력한다.
설계

구현
#5! 구해보기
facto = 1
for i in range(5,0,-1):
facto *= i
print(facto)
예제26
약수 구하기
분석
1. a = 30 으로 저장한다.
2. for i in range(1,a+1) 로 1부터 a까지 순서대로 i에 저장한다.
3. if a%i == 0 이 참이면
4. 약수이므로 i를 출력한다.
설계

구현
a = 30
for i in range(1,a+1):
if a%i == 0:
print(i,end=" ")
예제 27
공약수 구하기
(※ 단, n1이 n2보다 작다고 가정합니다.)
분석
1. a = 10, b = 20으로 각각 저장한다.
2. for i in range(1, a+1) 로 1부터 a까지의 범위를 순서대로 i에 저장한다.
3. if a%i == 0 and b%i == 0 으로 모두 만족하여 참이면
4. 공약수이므로 i를 출력한다.
설계

구현
a = 10
b = 20
for i in range(1,a+1):
if a%i == 0 and b%i == 0:
print(i,end=" ")
예제 28
최대공약수 구하기
분석
1. a = 12, b = 16 으로 저장한다.
2. for i in range(a,0,-1)로 a부터 0까지 순서대로 i에 저장한다.
3. if a%i == 0 and b%i == 0 이 처음 만족하여 참이 되면
4. break으로 for문을 탈출한다.
5. i를 출력한다.
설계

구현
a = 12
b = 18
for i in range(a,0,-1):
if a%i == 0 and b%i == 0:
break
print(i)
예제 29
소수 판별하기
분석
1. a로는 소수를 판별하기 위한 정수를 입력 받아 저장한다.
2. count는 (2 ~ a-1) 범위에서 나눠지는 수가 있는 경우 세기 위해 0으로 저장한다.
3. for i in range(2,a) 로 2부터 a-1 범위까지 수를 차례대로 뽑아 i에 저장한다.
4. if a%i == 0이 참인 경우에는 count를 +1 해준다.(나눠져서 0이 되는 경우에는 소수가 아님)
5. if count>0: count에 저장된 수가 1 이상일 경우 "소수가 아닙니다."를 출력하고
6. 그 외의 경우에는 "소수 입니다."를 출력한다.
설계

구현
a = int(input("소수를 판별하기 위한 정수를 입력하세요 : "))
count = 0
for i in range(2,a):
if a%i == 0:
count += 1
if count > 0:
print("소수가 아닙니다.")
else:
print("소수 입니다.")
예제30
피보나치수열 구하기
분석
1. 첫째항 a = 1, 둘째항 b = 1 로 저장한다.
2. for i in range(0, 21)로 0부터 20까지 순서대로 i에 저장한다.
3. 먼저 a를 출력한다.
4. 셋째항은 c = a + b 이고
5. a = b로 첫째항을 둘째항으로 대체한다.
6. b = c로 둘째항을 셋째항으로 대체한다.
설계

구현
a = 1
b = 1
for i in range(1, 21):
print(a,end=" ")
c = a+b
a = b
b = c
예제 31
최댓값 구하기
:max 값과 새롭게 입력받은 a 값을 비교하여 큰 값을 max에 저장하는 동작을 반복하며 최댓값을 구한다.
분석
1. i = 0, max = 0 으로 저장한다.
2. while i<6 으로 최대 6번까지 반복한다.
3. a를 입력받아 저장하고
4. if a>max 가 참이면
5. max = a로 max에 a값을 저장한다.
6. i는 1씩 더 한다.
6. 반복문이 끝나고 max에 저장된 가장 큰 값을 출력한다.
설계

구현
i = 0
max = 0
while i<6:
a = int(input("정수 : "))
if max<a:
max = a
i += 1
print("최댓값 : ",max)
예제32
직각 삼각형 모양으로 수 출력하기
분석
1. for i in range(1,6) 로 1부터 5까지 반복하여 i에 저장한다.(순서)
2. for j in range(1,i+1) 로 1부터 i까지 반복하여 j에 저장한다.(출력값)
3. j값을 출력한다.
설계

구현
for i in range(1,6):
for j in range(1,i+1):
print(j,end="")
print("\n")
예제33
1부터 10까지의 정수에 대한 약수 구하기
분석
1. for i in range(1,11) 로 1부터 10까지 반복하여 i에 저장한다(순서이자 나눠질 수)
2. for j in range(1,i+1) 로 1부터 i까지 반복하여 j에 저장한다(조건문 판단 근거)
3. 먼저 문자열 포매팅으로 i. i의 약수를 출력한다.
3. if i%j == 0 이 참이면
4. j가 i의 약수가 되므로 j를 출력한다.
설계

구현
for i in range(1,11):
print(f"{i}.", f"{i}의 약수 : ")
for j in range(1,i+1):
if i%j == 0:
print(j)
예제34
2부터 100까지의 소수 구하기
i가 2부터 1씩 증가하며 100이 될 때까지 반복하며 각 i 값이 소수인지 판별합니다.
분석
1. for i in range(2,101)로 2부터 100까지 순서대로 i에 저장
2. for j in range(2,i)로 2부터 i-1까지 순서대로 j에 저장
3. if i%j == 0 이 참이면 소수가 아니므로 break
5. 거짓이면 소수가 맞으므로 i를 소수로 출력
설계

구현
for i in range(2,100):
for j in range(2,i):
if i%j == 0:
break
else:
print(i, end=" ")
예제35
누적합의 누적합을 계산하는 문제
1, (1+2), (1+2+3), …, (1+2+ … +10)의 합 구하기
분석
1. for i in range(1,11)로 1부터 10까지 i에 저장
2. sum1 = sum1 + i로 누적해서 더 함
3. sum2 = sum2 + sum1로 누적합을 누적해서 더 함
3. sum2 출력
설계

구현
sum1 = 0
sum2 = 0
for i in range(1,11):
sum1 = sum + i
sum2 = sum2 + sum
print(sum2)
과제 13
5부터 15까지 출력하는 순서도와 파이썬 프로그램을 작성하세요.
while 반복문으로 만드세요.
분석
1. while 문이므로 i를 하나씩 증가 시키면서 종국에는 False로 만들어야 한다.
2. i = 4 로 저장한다.
3. i = i+1 로 1 단위씩 증가시킨다.
4. i를 출력
설계

구현
i = 4
while i<15:
i = i + 1
print(i, end =" ")
과제 14
5부터 15까지 출력하는 순서도와 파이썬 프로그램을 작성하세요.
for 반복문으로 만드세요.
분석
1. for i in range(5,16)로 5부터 15까지 반복해서 i에 저장함.
2. i를출력
설계

구현
for i in range(5,16):
print(i, end=" ")
과제 15
while형 반복 구조를 이용해서 10부터 1까지 출력하는 순서도와 파이썬 프로그램을 작성하세요.
분석
1. i = 10 으로 저장함.
2. while i>0 으로 i가 0이 되면 종료함.
3. i를 출력함.
4. i = i - 1로 1단위 줄임.
설계

구현
i = 10
while i>0:
print(i,end=" ")
i = i - 1
과제 16
1부터 "입력받은 수"까지의 합을 출력하는 순서도와 파이썬 프로그램을 작성하여라.
분석
1. a에 수를 입력받아 저장함.
2. sum = 0으로 저장함.
3. for i in range(1, a+1)로 1부터 a까지 순서대로 i에 저장함.
4. sum = sum + i 로 sum에 누적해서 더 함.
설계

구현
a = int(input("정수를 입력하세요 : "))
sum = 0
for i in range(1, a+1):
sum = sum + i
print(sum)
과제 18
1부터 100까지의 수 중 3의 배수의 합을 출력하는 순서도와 파이썬 프로그램을 작성하여라.
분석
1. sum = 0으로 저장함.
2. for i in range(1,101) 로 1부터 100까지 순서대로 i에 저장함.
3. if i%3 == 0이 참이면 3의 배수이므로
4. sum = sum + i 에 더 함
설계

구현
sum = 0
for i in range(1,101):
if i%3 == 0:
sum = sum + i
print(sum)
과제 19
1, 2, -3, 4, 5, -6, ..., -99, 100의 합을 구해 출력하는 순서도와 파이썬 프로그램을 작성하여라.
분석
1. for문으로 1부터 100까지 순서대로 대입
2. if문으로 3의 배수인 경우에만 sum에서 빼주고 그 외의 경우에는 더 함.
3. sum 출력
설계

구현
sum = 0
for i in range(1,101):
if i%3 == 0:
sum = sum - i
else:
sum = sum + i
print(sum)
과제 20
입력받은 숫자의 약수와, 약수의 개수를 출력하는 순서도와 파이썬 프로그램을 작성하여라.
분석
1. a로 입력받아 저장함
2. count = 0 으로 저장함
3. for i in range(1,a+1)로 1부터 a까지 순서대로 i에 대입함
4. if a%i == 0 참이면 약수이므로 count = count + 1로 더 해줌
5. count를 출력함
설계

구현
a = int(input("정수 : "))
count = 0
for i in range(1,a+1):
if a%i == 0:
count = count + 1
print(i,end=" ")
print(":", count)
과제 21
세 수의 공약수를 출력하는 순 과제 서도와 파이썬 프로그램을 작성하여라.
분석
1. a, b, c 각각 정수를 저장
2. for 문으로 제일 작ㅇ
설계

구현
a = 300
b = 400
c = 256
m = 0
if a>b:
if b>c:
m = c
else:
m = b
else:
m = a
for i in range(1,m+1):
if a%i == 0 and b%i == 0 and c%i == 0 :
print(i)
과제 22
예제 29번을 소수 판별하기 내용을 참고하여
1부터 자기 자신까지의 수로 차례로 나누어서 나누어떨어지는 경우가 2번 발생하면 이 수는 소수이고,
그렇지 않으면 소수가 아니다. 이 방법을 이용해서 소수를 판별하는 순서도와 파이썬 프로그램을 작성하여라.
분석
1. a를 입력받아 저장한다.
2. count = 0으로 저장한다.
3. for i in range(1,a+1)로 1부터 a까지 수를 차례대로 i에 대입한다.
4. if a%i == 0이 참이면 count = count + 1을 실행한다
5. if count == 2가 참이면 소수이고, 저깃이면 소수가 아님
설계

구현
a = int(input("정수 :"))
count = 0
for i in range(1,a+1):
if a%i == 0:
count = count + 1
if count == 2:
print("소수임")
else:
print("소수아님")
과제 23
예제 30번을 참고하여,
피보나치수열의 20번째 항까지의 합을 구하는 순서도와 파이썬 프로그램을 작성하여라.
분석
1. a=1, b=1, c=0으로 저장함
2. for i in range(0,20)로 20번 반복함
3. sum에 a를 더 함
셋째항 c는 c=a+b이고
4. 첫째항 a는 b로 대체되어야 하므로 a=b
5. 둘째항 b는 c로 대체되어야 하므로 b=c
설계

구현
a = 1
b = 1
sum = 0
for i in range(1, 21):
sum = sum + a
c = a+b #셋째항
a = b #첫째항 값을 둘째항 값으로 대체
b = c #둘째항 값을 셋째항 값으로 대체
print(sum)
과제 24
최솟값을 구하는 순서도와 파이썬 프로그램을 작성하여라.
0을 입력하기 전까지 입력값을 받아 최소값을 구하고, 0이 입력되면 최소값을 출력하도록 구현하라.
분석
1. 0을 입력하기 전까지라는 단서가 있으므로 while 문을 사용해야 할 것 같다.
2. a = 1로 저장한다.
3. min 은 입력받아 저장한다.
4. while a!=0은 a가 0이 되면 종료함
5. a를 입력받아 저장한다.
6. if min>a and a!=0 이 참이면 min = a 를 저장하고(만약 a!=0 조건을 넣어두지 않으면 min 변수에 0이 들어가는 상황이 발생함)
7. min을 출력함
설계

구현
a = 1
min = int(input("정수 : "))
while a!=0:
a=int(input("정수 : "))
if min>a and a!=0:
min=a
print("최솟값 : ",min)
과제 25
다음과 같이 출력하는 순서도와 파이썬 프로그램을 작성하여라.

분석
1. for i in range(1,6) 으로 1부터 5까지 범위를 순서대로 대입한다.(순서)
2. for j in range(i,i+1) 으로 각 줄에 들어가는 숫자를 i부터 i+1 범위까지 한정 시킨다.
3. f 문자열 포매팅으로 {j} 또는 {i} * j 또는 i 를 한다.
설계

구현
for i in range(1,6):
for j in range(i,i+1):
print(f"{i} "*j, end=" ")
print("\n")
for i in range(5,0,-1):
for j in range(1,i+1):
print(j,end=" ")
print("\n")
for i in range(5,0,-1):
for j in range(i,0,-1):
print(j,end=" ")
print("\n")
과제27
예제 36번을 참고하여,
다음과 같은 형식으로 출력되는 구구단 순서도와 파이썬 프로그램을 작성하여라.
분석
1. for i in range(2,10)으로 2부터 9까지의 수를 순서대로 i에 대입한다.
2. for i in range(1,10)으로 1부터 9까지의 수를 순서대로 j에 대입한다.
3. i*j를 출력
설계

구현
for i in range(2,10):
for j in range(1,10):
print(f'{i}*{j} =',i*j,end=" ")
print()'PYTHON > Assignment' 카테고리의 다른 글
| 04. 리스트 / 과제 추가 (2) | 2025.05.24 |
|---|---|
| 04. 리스트 / 과제 (2) | 2025.05.22 |
| 03. 반복구조 (0) | 2025.05.20 |
| 02. 선택구조 (0) | 2025.05.19 |
| 01. 순차구조 (0) | 2025.05.14 |