일지

Day 8 [순서도: 반복구조]

joo_coding 2025. 2. 28. 17:29

예제21

숫자 1부터 100까지의 합 구하세요.

0으로 초기화되어 있는 변수 sum에 숫자 1부터 100까지 1씩 증가하는 i 값을 계속 더해 1부터 100까 지의 합을 구합니다.

sum = 0
for i in range(1, 101):
    sum += i

print(sum)

 

예제22

1부터 100까지의 수 중 짝수의 합 구하기(1)

i가 2부터 2씩 증가하며 100이 될 때까지 반복하며 sum에 i 값을 누적합니다.

sum = 0
i = 0

for i in range(1,101):
    i += 2
    sum += i

print(sum)

 

 

[sum 함수]

#sum함수
print(sum(range(1,101)))

 

 

예제23

1부터 100까지의 수 중 짝수의 합 구하기(2)

i가 1부터 1씩 증가하며 100이 될 때까지 반복하며 i가 짝수인 경우 sum에 i 값을 누적한다.

i를 2로 나눈 나머지가 0이면 i는 짝수이다.

sum = 0
i = 1

for i in range(1, 101):
    i += 1
    two = i%2

    if two == 0: # i가 짝수이면
        sum += i # sum에 i값 추가

print(sum)

 

 

예제24

1, -2, 3, -4, ..., 99, -100의 합 구하기

i가 1부터 1씩 증가하며 100이 될 때까지 반복하며 i가 홀수면 sum에 i 값을 더하고, i가 짝 수면 sum에서 i 값을 뺀다.

sum = 0
i = -100

for i in range(-100, 0):
    i += 1

    if i%2 == 0: #짝수
        sum -= i
    else: #홀수
        sum += i

print(sum)

 

 

예제25

계승 구하기

계승이란 1부터 임의의 양의 정수 n까지의 수를 모두 곱한 것을 말하며 n!로 나타낸다.

예를 들어 5의 계승은 5!로 표시하며 1*2*3*4*5 이다. 그런데, 여기서 0!은 1로 정의한다.
5!은 1로 초기화되어 있는 변수 fact에 5부터 1까지 1씩 감소하는 i 값을 곱해 구한다.

fact = 1

for i in range(5, 1, -1):
    fact = fact * i

 

 

예제26

약수 구하기

임의의 수를 나누었을 때 나누어떨어지게 하는 수를 약수라 한다.

즉, n의 약수는 1부터 n까지의 수로 n을 나누어떨어지게 하는 수가 된다.

예를 들면, 10의 약수는 1부터 10까지 수들로 나누었을 때 나머지가 0이 되게 하는 수, 즉 1, 2, 5, 10이 된다.

sum = []
n = input("정수: ")
n = int(n)

for i in range(1, 1+n):
    math = n%i
    if math == 0:
        sum.append(i)

print(sum)

 

 

예제 27

공약수 구하기

공약수란 0이 아닌 두 정수의 공통되는 약수를 말한다. 즉, 두 정수를 나누어떨어지게 하는 공통의 수를 의미한다.
n1과 n2의 공약수는 1부터 n1까지 1씩 증가하는 i로 n1과 n2 모두를 나누어떨어지게 하는수가 된다. 

단, n1이 n2보다 작다고 가정한다.

sum = [] #공약수 리스트

n1 = int(input("정수: "))
n2 = int(input("정수: "))

for i in range(1, 1+n2): # n1이 n2보다 작아야하니까, 끝범위는 n2
    n1_y = n1 % i
    n2_y = n2 % i

    if n1_y == 0 and n2_y == 0:
        sum += [i]

print(sum)

 

 

예제 28

최대공약수 구하기

두 정수의 공약수 중 가장 큰 것을 최대공약수라 한다.

그러므로 n1과 n2의 최대공약수는 n1부터 1까지 1씩 감소하는 i로 n1과 n2 모두를 나누어떨어지게 하는 첫 번째 수가 된다. 단, n1이 n2보다 작다고 가정한다.

sum = []

n1 = int(input("정수: ")) #단, n1이 n2보다 작다
n2 = int(input("정수: "))

for i in range(n1, 1, -1):
    n1_y = n1 % i
    n2_y = n2 % i

    if n1_y == 0 and n2_y == 0:
        sum += [i]

print(sum[0])

 

 

예제 29

소수 판별하기

n = int(input("임의의 수를 입력하세요."))

for i in range (2, n):
    if n%i > 1: #몫이 1이어야
        print("소수 맞음")

 

 

예제30 

피보나치수열 구하기 

l_ =[]
i = 1

a = 1
b = 1
c = a + b
l_.append(a)
l_.append(b)
l_.append(c)
print(l_)

for i in range(1,18):
    i +=1

    a = b
    b = c
    c = a + b
    l_.append(c)
    print(l_)