---------------------기초수학
-약수와 소수
약수 코드 :
inputNumber = int(input("0보다 큰 정수 입력:"))
for number in range ( 1, (inputNumber +1) ):
if inputNumber % number == 0;
print('{}의 약수 : {}'.format(inputNumber,number))
소수 코드 :
inputNumber = int(input("0보다 큰 정수 입력:"))
for number in range(2, (inputNumber +1 )):
flag = True
for n in range(2,number):
if number % n == 0:
flag = False
break
if(flag):
print('{} : 소수'.format(number))
else :
print('{} : 합성수.'.format(number))
-소인수와 소인수분해
소인수 코드 :
inputNumber = int(input("1보다 큰 정수 입력:"))
n=2
while n<= inputNumber:
if inputNumber % n == 0:
print('소인수 : {}'.format(n))
inputNumber /= n
else :
n+=1
-최대 공약수
최대공약수 코드 :
num1 = int(input('1보다 큰 정수 입력 : '))
num2 = int(input('1보다 큰 정수 입력 : '))
if num1 > num2 :
num3 = num1
else :
num3 = num2
maxNum = 0
for i in range(1, (num3+1)):
if num1 % i == 0 and num2 % i == 0:
print('공약수 : {}'.format(i))
maxNum=i
print('최대 공약수 : {}'.format(maxNum))
#유클리드 호제법
: x,y의 최대공약수는 y,r(x%y)의 최대공약수와 같다.
ex) 36,24 , 36=24x1+12 = 24,12 = 24 = 12x2 + 0 -> 최대공약수 12
유클리드 호제법을 사용한 최대공약수 코드 :
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 , (temp+1)):
if temp1 % n == 0:
print('{},{}의 공약수 : {}'.format(num1,num2,n))
-최소 공배수
최소 공배수 코드 :
num1 = int(input('1보다 큰 정수 입력 : '))
num2 = int(input('1보다 큰 정수 입력 : '))
maxNum = 0
for i in range(1, (num1+1)):
if num1 % i == 0 and num2 % i ==0:
print('공약수 : {}'.format(i))
maxNum = i
print('최대 공약수 : {}'.format(maxNum))
minNum = (num1 * num2) / maxNum
print('최소공배수 : {}'.format(minNum))
-진법
2진수 : .format(bin(num)) = .format(format(num,'#b'))
8진수 : .format(oct(num)) = .format(format(num,'#o'))
16진수 : format(hex(num)) = .format(format(num,'#x')) -----> print('{0:#b} {0:#o} {0:#x}'.format(num)
#type은 항상 문자열(str) -> type(format~을 사용해서 타입 확인가능
#16진수에서 0x15같이 앞에 0x같은 것을 지울라면 .format(format(num,'x')) -> #을 지우면됨 이때도 str타입
-수열 , 등차수열
초항 , 공차 , n번쨰 항 값을 표현하는 등차수열 코드
inputN1 = int(input('a1입력 : '))
inputD = int(input('공차 입력: '))
inputN = int(input('n 입력: '))
valueN = 0
n = 1
while n<= inputN:
if n==1:
valueN = inputN1
print('1번째 항의 값 : {}'.format(valueN))
n += 1
continue
valueN += inputD
print('{}번째 항의 값 : {}'.format(n,valueN))
n += 1
print('{}번째 항의 값 : {}'.format(inputN,valueN))
#그냥 N번째 항 값을 구하는 코드
inputN1 = int(input('a1입력 : '))
inputD = int(input('공차 입력: '))
inputN = int(input('n 입력: '))
#등차 수열 공식 : an = a1 + (n-1)d
valueN = inputN1 + (inputN-1) * inputD
print('{}번째 항의 값 : {}'.format(inputN,valueN))
등차수열의 합을 구하는 코드
inputN1 = int(input('a1입력 : '))
inputD = int(input('공차 입력: '))
inputN = int(input('n 입력: '))
valueN = 0
n = 1
sumN = 0
while n<= inputN:
if n==1:
valueN = inputN1
sumN += valueN
n += 1
continue
valueN += inputD
sumN += valueN
print('{}번째 항의 값 : {}'.format(n,sumN))
n += 1
print('{}번째 항의 값 : {}'.format(inputN,sumN))
공식을 이용해서 만든 등차수열 합 코드
inputN1 = int(input('a1입력 : '))
inputD = int(input('공차 입력: '))
inputN = int(input('n 입력: '))
valueN = 0
sumN = 0
#등차수열의 합 Sn = n(a1 + an) / 2
valueN = inputN1 + (inputN - 1 ) inputD
sumN = inputN (inputN1 + valueN) / 2
print('{}번째 항의 값 : {}'.format(inputN,sumN))