diff --git a/15649.py b/15649.py new file mode 100644 index 0000000..1247056 --- /dev/null +++ b/15649.py @@ -0,0 +1,31 @@ +import itertools + +a, b = map(int, input().split()) + +# lst = [] +# for i in range(1, a + 1): +# lst.append(i) + + + +# 1. b개를 뽑는 법 +# +# 2. 가장 작은 순으로 나열하는 법 +# 자연수로 만들어서 비교할 수 있을까 + + + + +# --- +# python의 itertools 중 permutation 함수 사용 + +lsta = [] +for i in range(1, a+1): + lsta.append(i) + +lst = list(itertools.permutations(lsta, b)) # 튜플 반환 + +for j in lst: + print(*j) # 튜플 형식 없애기 위해 * 붙이기 + + diff --git a/1929.py b/1929.py new file mode 100644 index 0000000..bbdc23c --- /dev/null +++ b/1929.py @@ -0,0 +1,11 @@ +# 범위 받기 +min, max = map(int, input().split()) + +for i in range(min, max+1): + if i == 1: + continue + for j in range(2, int(i**0.5)+1): + if i % j == 0: # 나누어 질 경우 + break # 그 숫자는 패스 + else:# 살아남은 숫자는 + print(i) \ No newline at end of file diff --git a/1978.py b/1978.py new file mode 100644 index 0000000..d2bd435 --- /dev/null +++ b/1978.py @@ -0,0 +1,18 @@ +# 갯수 받기 +a = int(input()) +# 숫자들 받기 +b = list(map(int, input().split())) +# 카운트 +count = 0 + +for i in b: # 리스트 내 숫자에 대해 + if i == 1: # 1은 당연히 제외 + count += 1 + continue + for j in range(2, i): + if i % j == 0: # 2부터 i까지 나누어 보아 나머지가 0인 경우 발생시 + count += 1 #count에 +1 + break # 다음 숫자로 + +print(a-count) #전체 갯수 - 소수의 갯수 + diff --git a/2609.py b/2609.py new file mode 100644 index 0000000..1bbb72b --- /dev/null +++ b/2609.py @@ -0,0 +1,23 @@ +a, b = map(int, input().split()) + +# 유클리드 호제법 + +a2 = a +b2 = b +while b != 0: + a, b = b, a % b + +print(a) +print(int(a2*b2/a)) + + + +# for i in range (1, a): +# if a % i == 0 and b % i == 0: +# print(i) +# break + +# for j in range(b, ): +# if j % a == 0 and j % b == 0: +# print(j) +# break \ No newline at end of file diff --git a/4948.py b/4948.py new file mode 100644 index 0000000..3ddc1f3 --- /dev/null +++ b/4948.py @@ -0,0 +1,43 @@ +# while True: +# n = int(input()) +# count = 0 +# bign = 2*n +# if n == 0: +# break +# else: +# for i in range(n, bign + 1): +# if i == 1: +# count += 1 +# continue +# for j in range(2, int(i**0.5)+1): +# if i % j == 0: # 나누어 질 경우 +# break # 그 숫자는 패스 +# else:# 살아남은 숫자는 +# count += 1 + + +# print(count) + + + # 시간 초과 + +num = 123456*2+1 +num_list = [1]*num +for i in range(1, num): + if i == 1: + continue + for j in range(2, int(i**0.5)+1): + if i % j == 0: + num_list[i] = 0 + break + +while True: + n = int(input()) + + if n == 0: + break + + prime = 0 + for i in range(n+1, 2*n+1): + prime += num_list[i] + print(prime) diff --git a/6588.py b/6588.py new file mode 100644 index 0000000..d75fa8c --- /dev/null +++ b/6588.py @@ -0,0 +1,43 @@ +# n = int(input()) +# # n = a + b +# # b-a가 가장 큰 것을 출력 +# # 불가능할 시 Goldbach's conjecture is wrong. 출력 +# # 0 입력시 종료 + +# for i in range(3, n, -1): +# if n == 0: +# break +# for j in range(3, int(i**0.5)+1): +# if i % j != 0: + + +# https://changha-dev.tistory.com/181 참고하였음 + +import math +import sys + +# 에라토스테네스의 체 == 주어진 범위 내의 소수 리스트 반환하는 효율적인 알고리즘 +def sieve_of_eratosthenes(n): + prime = [True for _ in range(n+1)] + prime[0] = prime[1] = False # 0과 1 제외 + for i in range(2, int(math.sqrt(n)) + 1): + if prime[i] == True: + for j in range(i*i, n+1, i): + prime[j] = False #i의 배수를 모두 False로 만듦 + return prime + +max_n = 1000000 +prime_list = sieve_of_eratosthenes(max_n) + +while True: + n = int(sys.stdin.readline()) # 시간초과 방지 + if n == 0: + break + # 홀수만 찾으면 되므로 2씩 더해준다. + for i in range(3, int(n/2)+1, 2): + if prime_list[i] and prime_list[n-i]: #리스트에서 두 홀수 값이 소수인 경우 + print(f"{n} = {i} + {n-i}") + break + + else: + print("Goldbach's conjecture is wrong.") \ No newline at end of file diff --git a/8393.py b/8393.py new file mode 100644 index 0000000..ac7da64 --- /dev/null +++ b/8393.py @@ -0,0 +1,6 @@ +n = int(input()) +sum = 0 +for i in range(1, n+1): + sum += i + +print(sum) \ No newline at end of file diff --git a/999.py b/999.py new file mode 100644 index 0000000..127e8b2 --- /dev/null +++ b/999.py @@ -0,0 +1,11 @@ +N, M = map(int, input().split()) + +for i in range(N, M+1): + if i == 1: # 1은 통과 + continue + + for j in range(2, int(i**0.5) + 1): # 2 ~ 제곱근 사이 값 확인 + if i % j == 0: # 나누어 떨어진다면 그대로 종료 (else문 실행 X) + break + else: # for문이 잘 실행이 되었다면 print(i) 출력 + print(i) \ No newline at end of file