기본 수학 2

Programming/Coding Problem

BOJ 9020번 : 골드바흐의 추측

안녕하세요. 지난 포스팅의 BOJ 4948번 : 베트트랑 공준에서는 에라토스테네스의 체의 개념을 설명하고 실제로 구현해보았습니다. 오늘은 소수 관련 마지막 문제로 골드바흐의 추측에 대한 문제를 풀어보도록 하겠습니다. 지금까지 활용했던 소수 판별법을 적용하면 되기 때문에 크게 어렵지는 않습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 기본 구현능력 소수 판별 알고리즘 제출 코드 import math def is_prime(number) : for n in range(2, int(math.sqrt(number)) + 1) : if number % n == 0 or number == 1 : return False return True f..

Programming/Coding Problem

BOJ 4948번 : 베르트랑 공준

안녕하세요. 지난 포스팅의 BOJ 1929번 : 소수 구하기에서는 정수론 지식을 활용해서 보다 빠르게 소수 판별을 할 수 있는 방법에 대해서 알아보았습니다. 오늘은 이보다 더욱 빠르게 소수의 개수를 계산해야하는 문제를 풀기 위해 에라토스테네스의 체에 대한 개념을 알아보고 적용해보도록 하겠습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 기본 구현능력 에라토스테네스의 체 제출 코드 while True : N = int(input()) if N == 0 : break prime = [1 for i in range(2*N+1)] prime[0] = prime[1] = 0 for number, _ in enumerate(prime) : if..

Programming/Coding Problem

BOJ 1929번 : 소수 구하기

안녕하세요. 지난 포스팅의 BOJ 11653번 : 소인수분해에서는 반복문을 이용해서 소인수분해를 구현해보았습니다. 오늘은 BOJ 1978번 : 소수 찾기와 BOJ 2581번 : 소수와 동일한 문제이지만 더욱 빠르게 소수를 찾는 방법에 대해서 알아보겠습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 기본 구현능력 정수론 지식 제출 코드 import math M, N = map(int, input().split()) for n in range(M, N + 1) : if n == 1 : continue flag = 1 for i in range(2, int(math.sqrt(n)) + 1) : if n % i == 0 : flag = 0;..

Programming/Coding Problem

BOJ 11653번 : 소인수분해

안녕하세요. 지난 포스팅의 BOJ 2581번 : 소수에서는 소수를 구하는 알고리즘을 활용해서 주어진 범위 내에서 소수의 합과 가장 작은 소수를 구하는 방법에 대해서 알아보았습니다. 오늘은 소인수분해를 구현해보도록 하겠습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 기본 구현능력 소인수분해의 정의 제출 코드 N = int(input()) for p in range(2, N + 1) : while N % p == 0 : print(p) N //= p 해설 먼저 어떤 정수 $N$이 입력되면 해당 정수에 대한 소인수분해한 결과를 한 줄씩 출력해주면 됩니다. 방법은 간단합니다. 어차피 1은 모든 정수들에 대해서 나누어떨어지기 때문에 생략하고..

Programming/Coding Problem

BOJ 2581번 : 소수

안녕하세요. 지난 포스팅의 BOJ 1978번 : 소수 찾기에서는 소수를 찾는 알고리즘을 적용해보았습니다. 오늘은 이를 활용해서 문제를 풀어보도록 하죠. 지난 포스팅과 큰 차이가 나지 않을테니 쉬울겁니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 기본 구현능력 소수의 정의 제출 코드 M = int(input()) N = int(input()) prime = [] for p in range(M, N + 1) : flag = 1 if p == 1 : continue for n in range(2, p // 2 + 1) : if p % n == 0 : flag = 0; break if flag == 1 : prime.append(p) if ..

Programming/Coding Problem

BOJ 1978번 : 소수 찾기

안녕하세요. 지난 포스팅의 BOJ 2839번 : 설탕 배달에서는 복잡한 조건문을 걸어서 문제를 풀어보았습니다. 오늘은 소수를 찾는 기본적인 방법에 대해서 알아보도록 하겠습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 기본 구현능력 소수의 정의 제출 코드 N = int(input()) numbers = map(int, input().split()) cnt = 0 for number in numbers : flag = 1 if number == 1 : continue for n in range(2, number // 2 + 1) : if number % n == 0: flag = 0; break if flag == 1 : cnt += ..

Johns Hohns
'기본 수학 2' 태그의 글 목록