본문 바로가기

분류 전체보기79

백준 11653 - 소인수분해 (Python) 문제 정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. 출력 N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다. 코드 n = int(input()) for i in range(2, n+1): while n % i == 0: print(i) n /= i 풀이 소인수분해 결과를 오름차순으로 출력하기 때문에, 2부터 시작해서 n이 나누어떨어지는 수 i를 찾는다. 나누어 떨어지면 n을 i로 나눈다. 인수는 중복될 수 있으므로 더이상 i로 나누어떨어지지 않으면 다음 수로 넘어가서 똑같이 반복한다. 2022. 5. 10.
백준 2581 - 소수 (Python) 문제 자연수 M, N이 주어질 때 M 이상 N 이하의 자연수 중 소수의 합과 최솟값을 구하라. 코드 m = int(input()) n = int(input()) sum = 0 prime_numbers = [] for num in range(m, n+1): if num == 2: sum += num prime_numbers.append(num) else: for i in range(2, num): if num % i == 0: break if i == num-1: sum += num prime_numbers.append(num) if(prime_numbers): print(sum) print(min(prime_numbers)) else: print(-1) 풀이 1) M부터 N까지 자연수를 반복한다. 2) .. 2022. 5. 9.
백준 1978 - 소수 찾기 (Python) 문제 주어진 N개의 수 중 소수의 수 출력하기 N 2022. 5. 9.
백준 2839 - 설탕 배달 (Python) 문제 n kg설탕을 3kg/5kg 봉지에 각각 나눠 담는다. 이때 봉지의 개수가 최소가 되는 경우를 구해야 한다. 설탕이 정확히 나누어떨어지지 않는다면 -1을 출력한다. 코드 n = int(input()) # a: 3kg 봉지 개수 # b: 5kg 봉지 개수 b = n//5 a = n-b*5 while (True): if b == 0 or a % 3 == 0: break b -= 1 a = n-b*5 a = a//3 if a*3+b*5 == n: print(a+b) else: print(-1) 풀이 3kg 봉지보다 5kg봉지에 많이 담아야 당연히 봉지의 수가 더 적을 것이다. 그래서 설탕 총 무게를 5kg로 나누었을 때 몫을 구하고, 그 나머지가 3kg로 나누어떨어지는 경우를 구한다. 나누어떨어지지 않는.. 2022. 5. 8.