어떤 수를 나누어 떨어지게 하는 수
나누어 떨어지는 수가 1과 본인 자신인 수. 단 1은 제외.
약수중에서 소수인 숫자.
10의 소인수는 2,5
1보다 큰 정수를 소인수의 곱으로 나타낸 것.


소인수 구하는 코드
inputNumber = int(input('1보다 큰 정수 입력: '))
n=2
while n<= inputNumber:
if inputNumber % n == 0:
print('소인수: {}'.format(n))
inputNumber /= n #2로 한번 나눈 것을 다시 2부터 나눠지는지 확인
else:
n += 1
72에 x를 곱하면 y의 제곱이 된다고 할때, x에 해당하는 가장 작은 정수 구하기★★
inputNumber = int(input('1보다 큰 정수 입력: '))
n=2
#리스트를 이용해 소인수들을 넣은뒤 홀수의 개수가 나온 애들을 찾아내면 된다.
searchNumbers = []
while n<= inputNumber:
if inputNumber % n == 0:
print('소인수: {}'.format(n))
if searchNumbers.count(n) ==0: #n이 해당 리스트에 몇개가 있는지 알려줌
searchNumbers.append(n)
elif searchNumbers.count(n) == 1:
# 우리는 홀수개가 있는 녀석을 찾는 것이므로 하나가 이미 있는 상태에서
# 하나가 또 들어오면 짝수라는 뜻이므로 지워서 아예 없애버린다.
searchNumbers.remove(n)
inputNumber /= n
else:
n += 1
print('곱해야 할 수: {}'.format(searchNumbers))
두개이상의 수에서 공통된 약수
공약수 중 가장 큰 수


x와 y의 최대공약수는 y와 r(x를 y로 나눈 나머지)의 최대공약수와 같다.

두개 이상의 수에서 공통된 배수
공배수 중 가장 작은 수


최소공배수
num1 = int(input('1보다 큰 정수 입력: '))
num2 = int(input('1보다 큰 정수 입력: '))
maxNum = 0
for i in range(1,(num+1)):
if num1 % i ==0 and num2 % i ==0:
print('공약수: {}'.format(i))
maxNum = i
print('최대공약수: {}'.format(maxNum))
#최소공배수
minNum = (num1 * num2) // maxNum
print(f'최소공배수: {minNum}')







2진수(binary): bin(숫자) or format(숫자,'#b')
8진수(octal): oct(숫자) or format(숫자,'#o')
16진수(Hexadecimal): hex(숫자) or format(숫자,'#x')
ex) 모두 문자열로 결과가 나옴
2진수 결과: 0b1110
8진수 결과: 0o36
16진수 결과: 0x1e
이런 방법도 있음
dnum = 30
print('{0:#b}, {0:#o}, {0:#x}'.format(dnum, dnum, dnum))


규칙성을 가지고 나열되어 있는 수들



an = a1+(n-1)d

연속된 세 항에서 가운데 항
Sn = n(a1+an)/2

#등차수열
inputN1 = int(input('a1 입력: '))
inputD = int(input('공차 입력: '))
inputN = int(input('n 입력: '))
valueN = inputN1 + (inputN-1)*inputD
print('{}번째 항의 값: {}'.format(inputN,valueN))
an = a1*r^(n-1)

연속된 세 항에서 가운데 항



어떤 수열의 인접하는 두 항의 차로 이루어진 또 다른 수열

계차 수열을 이용해서 수열 an의 일반항을 구할 수 있다.

세번째 항은 두번째 항과 첫번째 항을 더한 합니다.

1부터 양의 정수 n까지의 정수를 모두 곱한 것
0! = 1 이라고 규정한다.
ex) 4! = 1 x 2 x 3 x 4

기본 제공함수도 있음
import math
math.factorial(숫자)

n개 중에서 r개를 택하여 나열하는 경우의 수
{1, 2, 3, 4}가 있다고 했을 때
1 -> 2, 3, 4 ex)(1, 2), (1, 3), (1, 4)
2 -> 1, 3, 4
3 -> 1, 2, 4
4 -> 1, 2, 3

시작과 끝의 구분이 없는 순열
테이블에 앉는 방법 생각하면됨.
1, 2, 3 이나 2, 3, 1이나 하나의 테이블에서는 똑같음.

for i in range(1, n)
result *= i
n개에서 r개를 택하는 경우의 수
순열: 순서 상관있이 r개 선택
조합: 순서 상관없이 r개 선택
ex) 1, 2, 3개에서 2개 선택
순열: 6개
조합: 3개

모든 사건에서 특정 사건이 일어날 수 있는 수