Day 8 [순서도: 반복구조]
예제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_)