1. 유클리드 호제법을 이용해서 최대공약수를 구할 수 있다.
유클리드 호제법:
x,y의 최대공약수는 y, r(x%y)의 최대공약수와 같다.
# 유클리드 호제법을 이용해서도 최대공약수를 구할 수 있다.
num1 = int(input('1보다 큰 정수 입력: '))
num2 = int(input('1보다 큰 정수 입력: '))
temp1 = num1
temp2 = num2
while temp2 > 0:
temp = temp2
temp2 = temp1 % temp2
temp1 = temp
print('{}, {}의 최대공약수: {}'.format(num1, num2, temp1))
for n in range(1, temp1 + 1):
if temp1 % n == 0:
print('{}, {}의 공약수: {}'.format(num1, num2, n))
2. 등차수열의 일반항은 다음과 같다.
An = A1 + (n - 1) * d (n>=2, d는 공차)
3. 등차중항은 연속된 세 항 중 가운데 항이다.
An = (An+1 + An-1) / 2
4. 등차중항을 통해 등차수열의 합을 구할 수 있다.
Sn = n(A1 + An) / 2 = n(A1 + A1 + (n-1)d) / 2 = n(2A1 + (n-1)d) / 2
5. 등비수열의 일반항은 다음과 같다.
An = A1 * r^(n-1)
6. 등비중항은 연속된 세 항 중 가운데 항이다.
An^2 = An+1 * An-1
7. 등비중항을 응용해 등비수열의 합을 구할 수 있다.
Sn = A1 * (1-r^n) / (1-r)
8. 등차수열과 등비수열의 합을 간단하게 시그마로 나타낸다.

9. 계차 수열이란 어떤 수열의 인접하는 두 항의 차로 이루어진 또 다른 수열이다.
10. 계차 수열을 이용해서 수열 An의 일반항을 구할 수 있다.

11. 군수열이란 여러 개의 항을 묶었을 때 규칙성을 가지는 수열이다.
inputN = int(input('N의 값 입력: '))
flag = True
n = 1
nCnt = 1
searchN = 0
while flag:
for i in range(1, (n + 1)):
if i == n:
print('{}'.format(i), end=" ")
else:
print('{}'.format(i), end=' ')
nCnt += 1
if (nCnt > inputN):
searchN = i
flag = False
break
print()
n += 1
print('{}항: {}'.format(inputN, searchN))
# N의 값 입력: 15
# 1
# 1 2
# 1 2 3
# 1 2 3 4
# 1 2 3 4 5
# 15항: 5
12. 순열이란 n개에서 r개를 택하여 '나열하는' 경우의 수이다. (순서는 생각하지 않는다) Permutation이라고 한다.
nPr = n! / (n-r)!
13. 조합이란 n개에서 r개를 '택하는' 경우의 수이다. (순서를 고려한다) Combination이라고 한다.
nCr = n! / r!(n-r)!
14. 확률이란 모든 사건에서 특정 사건이 일어날 수 있는 수를 나타낸 것이다. 확률을 구해야 하는 상황을 잘 보고, 순열 또는 조합을 채택하여 전체 사건으로 나누면 된다.