log.Sehee
[데이터 취업 스쿨 스터디 노트] 기초수학 문풀 1- 3 본문
약수와 소수
import random
num = random.randint(100, 1000)
print(f'num: {num}')
for n in range(1, num+1):
soinsu_flag = 0
if num % n == 0:
print(f'[약수]: {n}')
soinsu_flag += 1
if n != 1:
flag = True
for i in range(2, n):
if n % i == 0:
flag = False
break
if flag:
print(f'[소수]: {n}')
soinsu_flag += 1
if soinsu_flag >= 2:
print(f'[소인수]: {n}')
최대공약수
import random
num1 = random.randint(100, 1000)
num2 = random.randint(100, 1000)
print(f'num1: {num1}')
print(f'num2: {num2}')
max_num = 0
for n in range(1, min(num1, num2) + 1):
if num1 % n == 0 and num2 % n == 0:
print(f'공약수: {n}')
max_num = n
print(f'최대공약수: {max_num}')
if max_num == 1:
print(f'{num1}과 {num2}는 서로소이다.')
최소공배수
import random
num1 = random.randint(100, 1000)
num2 = random.randint(100, 1000)
print(f'num1: {num1}')
print(f'num2: {num2}')
max_num = 0
for n in range(1, min(num1, num2) + 1):
if num1 % n == 0 and num2 % n == 0:
print(f'공약수: {n}')
max_num = n
print(f'최대공약수: {max_num}')
min_num = (num1 + num2) // max_num
print(f'최소공배수: {min_num}')
계차수열
input_a1 = 2
input_n = int(input('an 입력: '))
value_n = ((3 * input_n ** 2) - (3 * input_n) + 4) / 2
print(f'an의 {input_n}번째 항의 값: {int(value_n)}')
피보나치수열
input_n = int(input('n항 입력: '))
nums = [1, 1]
for i in range(input_n - 2):
nums.append(nums[-2] + nums[-1])
print(nums)
print(f'{input_n}항의 값: {nums[-1]}')
print(f'{input_n}항까지의 합: {sum(nums)}')
순열
num_n = int(input('num_n 입력: '))
num_r = int(input('num_r 입력: '))
result = 1
for n in range(num_n, (num_n - num_r), -1):
print(f'n: {n}')
result = result * n
print(f'result: {result}')
조합
num_n = int(input('num_n 입력: '))
num_r = int(input('num_r 입력: '))
result_p = 1
result_r = 1
result_c = 1
for n in range(num_n, (num_n - num_r), -1):
result_p *= n
print(f'result_p: {result_p}')
for n in range(num_r, 0, -1):
result_r *= n
print(f'result_r: {result_r}')
result_c = int(result_p / result_r)
print(f'result_c: {result_c}')
내일의 학습 목표
자료구조 1 - 4
Comments