import random
num = random.randint(100, 1000)
print('random number : {}'.format(num))
divisor = []
primeFactorization = []
prime = []
for i in range(1, num+1):
#약수
if num % i == 0:
divisor.append(i)
#소수
if num != 1:
flag = True
for j in range(2, i):
if i % j == 0:
flag = False
break
if(flag):
prime.append(i)
#소인수 = 약수이면서 소수인거
for x in divisor:
if x in prime:
primeFactorization.append(x)
print("약수 : ", divisor)
print("소수 : ", prime)
print("소인수 : ", primeFactorization)
import random
num = random.randint(100, 1000)
print('random number : {}'.format(num))
n = 2
#소인수
primeFactorization = []
while n <= num:
if num % n == 0:
primeFactorization.append(n)
num /= n
else:
n += 1
prime = set(primeFactorization)
print("소인수 : ", primeFactorization)
for x in prime:
count = primeFactorization.count(x)
print(f'{x} : {count}개')
# def gcd(num1, num2):
# while num2 > 0:
# num1, num2 = num2, num1 % num2
# return num1
import random
num1 = random.randint(100, 1000)
num2 = random.randint(100, 1000)
print(f'random num1 : {num1}\nrandom num2 : {num2}')
#공약수
commonDivisor = []
for i in range(1, min(num1, num2)+1):
if num1 % i == 0 and num2 % i == 0:
commonDivisor.append(i)
gcd = max(commonDivisor)
print(f'공약수 : {commonDivisor}')
print(f'최대공약수 : {gcd}')
print(f'{num1}과 {num2}는 서로수이다.') if gcd == 1 else print(f'{num1}과 {num2}는 서로소가 아니다.')
import random
num1 = random.randint(100, 1000)
num2 = random.randint(100, 1000)
print(f'random num1 : {num1}\nrandom num2 : {num2}')
multi = num1 * num2
while num2 > 0:
num1, num2 = num2, num1 % num2
print(f'최대공약수 : {num1} 최대공배수 : {int(multi/num1)}')
num = int(input("10진수 입력: "))
print(f'2진수 변환 {bin(num)}')
print(f'8진수 변환 {oct(num)}')
print(f'16진수 변환 {hex(num)}')
a1 = int(input("a1을 입력해주세요 : "))
n = int(input("n을 입력해주세요: "))
d = int(input("공차를 입력해주세요 : "))
# 공식 an = a1 + (n - 1)*d
num = 1
answer = a1
total = answer
while num < n:
answer += d
total += answer
num += 1
print(answer)
print("비교: ", a1 + (n - 1)*d)
print(total)
print("비교: ", int((n * (a1 + answer))/2))
import math
a1 = int(input("a1을 입력해주세요 : "))
n = int(input("n을 입력해주세요: "))
r = int(input("r을 입력해주세요 : "))
num = 1
answer = a1
total = a1
while num < n:
answer *= r
total += answer
num += 1
print(answer)
print(a1 * int(math.pow(r, n - 1)))
print(total)
print(int(a1 * (1 - math.pow(r, n))/ (1 - r)))
num = int(input("n 을 입력해주세요: "))
n = 1
value = 0
value1 = 0
value2 = 0
sumvalue = 0
while n <= num:
if n == 1 or n == 2:
value = 1
value2 = value
value1 = value
sumvalue += value
else:
value = value2 + value1
value2 = value1
value1 = value
sumvalue += value
n += 1
print(value)
print(sumvalue)
반복 가능한 객체(=길이가 n인)에 대해서 중복을 허용하지 않고 r개를 뽑아서 나열한다.
뽑힌 순서대로 나열하기 때문에 순서가 의미있다.
(즉, 같은 값이 뽑히더라도 순서가 다르면 다른 경우의 수로 취급한다.)
permutations(반복 가능한 객체, r)
combinations(반복 가능한 객체, r)