728x90
반응형
4134번: 다음 소수
정수 n(0 ≤ n ≤ 4*109)가 주어졌을 때, n보다 크거나 같은 소수 중 가장 작은 소수 찾는 프로그램을 작성하시오.
www.acmicpc.net
1. 문제 설명
2. 풀이과정
- sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
- sqrt() 함수를 사용하기 위해 math 모듈을 불러온다. import math
- 테스트 케이스의 개수를 입력받는다. T = int(sys.stdin.readline())
- 소수를 판별할 함수를 생성한다. def check(x)
- 2부터 자기 자신의 제곱수 정수 부분까지 반복하며 for i in range(2, int(math.sqrt(x)) + 1)
- 만약 판별할 수가 나누어 떨어지면 if (x % i == 0)
- 소수가 아니므로 False를 반환하고 return False
- 끝까지 나누어 떨어지지 않으면 소수이므로 True를 반환한다. return True
- 테스트 케이스만큼 반복하며 for _ in range(T)
- 정수를 입력받는다. n = int(sys.stdin.readline())
- 만약 정수가 0이나 1이면 if (n == 0) or (n == 1)
- 해당 정수보다 크거나 같은 소수는 2이므로 2를 출력하고 print(2)
- 다음 테스트 케이스로 넘어간다. continue
- 그게 아니라면 크거나 같은 소수를 찾을 때까지 무한반복하며 while (True)
- 해당 정수부터 소수인지 판별하고 만약 소수이면 if (check(n))
- 해당 수를 출력하고 print(n)
- 반복을 종료한다. break
- 소수가 아니면 1 증가시켜 다음 수를 다시 소수 판별한다. n += 1
반응형
3. 소스코드
import sys
import math
T = int(sys.stdin.readline())
def check(x):
for i in range(2, int(math.sqrt(x)) + 1):
if (x % i == 0):
return False
return True
for _ in range(T):
n = int(sys.stdin.readline())
if (n == 0) or (n == 1):
print(2)
continue
while (True):
if (check(n)):
print(n)
break
n += 1
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 4949번 : 균형잡힌 세상 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.12.02 |
---|---|
[백준] 28278번 : 스택 2 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.12.01 |
[백준] 13909번 : 창문 닫기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.11.30 |
[백준] 17103번 : 골드바흐 파티션 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.11.29 |
[백준] 2485번 : 가로수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.11.27 |
[백준] 1735번 : 분수 합 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.11.26 |
[백준] 13241번 : 최소공배수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.11.25 |
[백준] 11478번 : 서로 다른 부분 문자열의 개수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.11.24 |