[백준 복습하기] 2019/08/19 ~ 2019/08/22 복습 (파이썬)


[코딩 복습하기] 2019/08/19 ~ 2019/08/22 복습 (파이썬)

  • 먼가 매일 포스팅 하는것보다 매주 하루~이틀은 이렇게 복습하는게 중요할 것 같다.
# 최대공약수
def gcd(a, b):
    if b == 0 :
        return a;
    else :
        return gcd(b, a%b)
print(gcd(24, 18))
6
# 최소 공배수
g = gcd(24,18)
l = 24*18/g
print(l)
72.0
# 소수 구하기
# 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)
3 10
3
5
7
# 소수 찾기
# 에라토스테네스의 채
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
8
8 = 3 + 5
0





© 2018. by statssy

Powered by statssy