
츄르사려고 코딩하는 코집사입니다.
1. [백준 알고리즘] 백준 1929번 소수 구하기 파이썬(Python)
1) 문제번호 : 1929번
2) 문제 출처
https://www.acmicpc.net/problem/1929
1929번: 소수 구하기
첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.
www.acmicpc.net
2. 문제
부산일과학고등학교의 효진이는 수학의 귀재이다. 어떤 문제라도 보면 1분 내에 풀어버린다는 학교의 전설이 내려올 정도였는데, 이런 킹ㅡ갓 효진에게도 고민이 생겼다. 대부분의 문제에서 반복되는 연산이 있었기 때문이다! 이 연산은 너무 길어서 종이에 풀던 효진이는 너무 고통스러워서, 자신이 새로 연산자를 만들기로 했다.
연산자의 기호는 @으로, A@B = (A+B)×(A-B)으로 정의내리기로 했다.
하지만, 효진이는 막상 큰 숫자가 들어오자 계산하기 너무 귀찮아졌다.
효진이를 도와 정수 A, B가 주어지면 A@B를 계산하는 프로그램을 만들어주자!
3. 제약사항
4. 입력
첫째 줄에 A, B가 주어진다. (1 ≤ A, B ≤ 100,000)
5. 출력
첫째 줄에 A@B의 결과를 출력한다.
6. 풀이
- 소수는 1부터 그 소수까지를 확인하는게 아닌 제곱근까지만 확인하면 된다.
- 그래서, isPrime 함수를 만들어 2부터 sq까지 소수를 판별한다.
7. 소스 코드
import math
import sys
input = sys.stdin.readline
def isPrime(num) :
#만약 1이라면 소수가 아니므로 false
if num==1: return False
#제곱근까지만 확인
sq = int(math.sqrt(num))
for i in range(2, sq+1):
#나눠지면 소수가 아님
if num % i == 0 : return False
return True
#자연수 M과 N 입력
M, N = map(int, input().split())
#M부터 N까지 소수면 소수 출력
for i in range(M, N+1):
if isPrime(i) :
print(i)
'알고리즘 > 백준 알고리즘' 카테고리의 다른 글
[백준 알고리즘] 백준 21735번 눈덩이 굴리기 파이썬(Python) (0) | 2021.05.17 |
---|---|
[백준 알고리즘] 백준 17256번 달달함이 넘쳐흘러 파이썬(Python) (0) | 2021.05.17 |
[백준 알고리즘] 백준 21736번 헌내기는 친구가 필요해 자바(Java) (0) | 2021.05.17 |
[백준 알고리즘] 백준 21734번 SMUPC의 등장 파이썬(Python) (0) | 2021.05.17 |
[백준 알고리즘] 백준 1874번 스택 수열 파이썬(Python) (0) | 2021.05.15 |
[백준 알고리즘] 백준 15964번 이상한 기호 파이썬(Python) (0) | 2021.05.15 |
[백준 알고리즘] 백준 16170번 오늘의 날짜는? 파이썬(Python) (0) | 2021.05.15 |
[백준 알고리즘] 백준 16394번 홍익대학교 파이썬(Python) (0) | 2021.05.15 |
최근댓글