[코딩 복습하기] 2019/08/19 ~ 2019/08/22 복습 (파이썬)
- 먼가 매일 포스팅 하는것보다 매주 하루~이틀은 이렇게 복습하는게 중요할 것 같다.
# 최대공약수
def gcd(a, b):
if b == 0 :
return a;
else :
return gcd(b, a%b)
# 최소 공배수
g = gcd(24,18)
l = 24*18/g
print(l)
# 소수 구하기
# 2 ~sqrt(N)까지 나누기
import math
def isPrime(num):
if num == 1:
return False
n = int(math.sqrt(num))
for k in range(2, n+1):
if num % k == 0:
return False
return True
# main
m, n = map(int, input().split())
for k in range(m, n+1):
if isPrime(k) : print(k)
# 소수 찾기
# 에라토스테네스의 채
n=100
a = [False,False] + [True]*(n-1)
primes=[]
for i in range(2,n+1):
if a[i]:
primes.append(i)
for j in range(2*i, n+1, i):
a[j] = False
print(primes)
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
# gcd 합
def gcd(x, y):
while y is not 0:
r = x%y
x = y
y = r
return x
for _ in range(int(input())):
n, *a = map(int, input().split())
s = 0
for i in range(0, n-1):
for j in range(i+1, n):
s += gcd(a[i], a[j])
print(s)
2
2 4 5
1
5 10 20 30 40 50
110
# 골드바흐의 추측
MAX = 1000000
prime = [False for _ in range(MAX+1)]
for i in range(2, MAX+1):
if i*i > MAX:
break
if prime[i] is False:
for j in range(i*i, MAX+1, i):
prime[j] = True
while True:
n = int(input())
if n is 0:
break
for i in range(2, MAX+1):
if prime[i] is False:
j = n - i
if prime[j] is False:
print(n, "=", i, "+", j)
break