본문 바로가기

백준(Python) 풀이112

백준 1978번. 소수 찾기 (Python / 파이썬) 문제 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 입력 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. 출력 주어진 수들 중 소수의 개수를 출력한다. 문제 풀이 N개의 수가 주어졌을 때 소수가 몇 개인지 찾는 문제 입니다. 소수란, 1과 자기 자신만을 약수로 갖는 수 입니다. 따라서 주어진 수를 하나씩 확인하며 소수인지 아닌지 판별해주었습니다. 1은 소수가 아니므로 주어진 수가 1보다 크다면 2부터 주어진 수보다 1 작은 수까지 나눈 나머지를 구해주었습니다. 만약 나머지가 0이라면 다른 약수가 존재한다는 것입니다. 따라서 check 변수를 False로 만들어주어 소수가 아님을 표시해주었습니다... 2022. 4. 29.
백준 2609번. 최대공약수와 최소공배수 (Python / 파이썬) 문제 두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다. 출력 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. 문제 풀이 어떤 두 수의 최대공약수는 두 수 중 큰 수에서 작은 수로 나눈 나머지를 두 수 중 작은 수에서 계속 나누어주어 구할 수 있습니다. 어떤 두 수의 최소공배수는 두 수의 곱을 최대공약수로 나눈 몫으로 구할 수 있습니다. 따라서 최대공약수와 최소공배수를 구하는 함수를 각각 만들어 구해주었습니다. 1. 최대공약수를 구하는 함수는 b가 0보다 클 때까지만 a는 b로, b는 a.. 2022. 4. 29.
백준 17425번. 약수의 합 (Python / 파이썬) 문제 두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더한 값이고, f(A)로 표현한다. x보다 작거나 같은 모든 자연수 y의 f(y)값을 더한 값은 g(x)로 표현한다. 자연수 N이 주어졌을 때, g(N)을 구해보자. 입력 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 100,000)가 주어진다. 둘째 줄부터 테스트 케이스가 한 줄에 하나씩 주어지며 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 출력 각각의 테스트 케이스마다, 한 줄에 하나씩 g(N)를 출력한다. 문제 풀이 약수의 합 문제는 약수.. 2022. 4. 29.
백준 17427번. 약수의 합 2 (Python / 파이썬) 문제 두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더한 값이고, f(A)로 표현한다. x보다 작거나 같은 모든 자연수 y의 f(y)값을 더한 값은 g(x)로 표현한다. 자연수 N이 주어졌을 때, g(N)을 구해보자. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 출력 첫째 줄에 g(N)를 출력한다. 문제 풀이 약수의 합을 구하는 문제는 문제를 해결하기 위한 아이디어를 떠올리는게 핵심인 문제였던 것 같습니다. 자연수 N보다 작은 수들의 약수의 합을 단순히 모두 구할 수 있겠지만 조금 .. 2022. 4. 29.