목록전체 글 (112)
just inside

문제 링크https://www.acmicpc.net/problem/1676문제 설명 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500) 출력 첫째 줄에 구한 0의 개수를 출력한다. 제출 코드import sysinput = sys.stdin.readlinen = int(input().rstrip())n_fac = 1for i in range(1, n+1): n_fac *= inum_0 = 0for i in str(n_fac)[::-1]: if i == '0': num_0 += 1 else: print(num_0) break 풀이N! 수를 먼저 구한..

문제 링크https://www.acmicpc.net/problem/2231문제 설명어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다.자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 출력 첫째 줄에 답을 출력한다. 생성자가 없는 경우에는 0을 출력한다. 제출 코드imp..

문제 링크https://www.acmicpc.net/problem/1929문제 설명 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 출력 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다. 제출 코드import sysimport mathinput = sys.stdin.readlinem, n = map(int, input().split())nums = [True]*(n+1)for i in range(2, int(math.sqrt(n))+1): if nums[i]: for j in range(i*i, n+1,..

소수 (Prime Number) 란?1과 자기 자신 외에는 다른 약수를 가지지 않는 자연수.1보다 큰 자연수 중에서 오직 두 개의 약수만을 가지는 수 -> 1은 소수가 아님 소수 판별 알고리즘특정 숫자 n이 소수인지 확인하려면 2부터 $\sqrt{n}$ 까지의 모든 숫자로 n을 나누어 본다.$n=a \times b$이 때 a와 b 둘 중 하나는 반드시 n의 제곱근 이하이다. n이 소수가 아니라면, 반드시 두 약수 중 하나는 $\sqrt{n}$ 이하가 되게 된다.따라서 소수인지 판별하기 위해서는 2부터 n-1 까지가 아니라, $\sqrt{n}$ 까지만 확인하면 된다. # 제곱근 계산 위해 math 모듈 사용import mathdef ifPrime(n): # 2부터 n의 제곱근까지 반복 for i in ra..

문제 링크https://www.acmicpc.net/problem/1987문제 설명주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 입력첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. 출력주어진 수들 중 소수의 개수를 출력한다.제출 코드import sysimport mathinput = sys.stdin.readlinen = int(input().rstrip())nums = list(map(int, input().split()))result = 0def isPrime(n): if n == 1: return False # 2부터 제곱근까지 모든 수 확인 for i in r..

문제 링크https://www.acmicpc.net/problem/1436문제 설명666은 종말을 나타내는 수라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워즈를 만들 때, 스타워즈 1, 스타워즈 2, 스타워즈 3, 스타워즈 4, 스타워즈 5, 스타워즈 6과 같이 이름을 지었고, 피터 잭슨은 반지의 제왕을 만들 때, 반지의 제왕 1, 반지의 제왕 2, 반지의 제왕 3과 같이 영화 제목을 지었다. 하지만 숌은 자신이 조지 루카스와 피터 잭슨을 뛰어넘는다는 것을 보여주기 위해서 영화 제목을 좀 다르게 만들기로 했다.종말의 수란 어떤 수에 6이 적어도 3개 이상 연속으로 들어가는 수를 말한다...