일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- ros2 foxy tutorial
- ros2 튜토리얼 환경설정
- ros2 remapping
- 코드업
- nav2 tutorial
- Python
- Nav2 document
- docker foxy
- CODEUP 6073
- ros2 환경설정
- nav2 튜토리얼
- ros2 development guides
- Foxy tutorial
- ros2 configuring environment
- first-time robot setup guide
- ROS FOXY 튜토리얼
- humble development guides
- humble 환경설정
- error
- CodeUp
- ros2 foxy docker
- foxy nav2
- nav2 development guides
- nav2 설치
- ros2 튜토리얼
- setting up transformations
- nav2 dev contatiner
- ros2 transformations 개념
- nav2 first-time robot setup guide
- nav2 getting started
Archives
- Today
- Total
BAN2ARU
[백준/Python] 1978번 : 소수 찾기 본문
반응형
https://www.acmicpc.net/problem/1978
1978번: 소수 찾기
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
www.acmicpc.net
- 풀이
import sys
input = sys.stdin.readline
n = int(input())
num_list = list(map(int, input().split()))
for i in num_list :
if i == 1 :
n -= 1
continue
for j in range(2, int(i**0.5)+1) :
if i%j == 0 :
n -= 1
break
print(n)
1. n = int(input))을 통해 전체 갯수를 입력받았음. 추후 소수가 아닌 경우에는 여기서 제외하는 방식으로 진행함
2. num_list를 for문을 통해 차례대로 값을 확인하며 만약 1인 경우에는 소수가 아니므로 n에서 1을 빼줌
3. 그 후에는 2부터 int(i**0.5) 까지의 값을 돌아가면서 나누었을 때 떨어지는 값이 있으면 n에서 1을 빼줌 : 나누어진다는 의미는 소수가 아니라는 의미이므로
- int(i**0.5)는 주어진 값의 제곱근을 의미하는데 값이 나눠질때는 pair로 존재하는데 pair의 앞 값이 최대인 경우가 제곱근일 때로 약수의 경우에는 제곱근까지만 값을 확인하면 효율적으로 식을 만들 수 있음.
예를 들어서 36의 경우에는 (2, 18) (3, 12) (4, 9) (6, 6) 으로 2부터 6까지만 돌면 해당 값의 모든 약수를 알 수 있음!
728x90
'Coding Test > BaekJoon' 카테고리의 다른 글
[백준/Python] 1316번 : 그룹 단어 체커 (0) | 2023.06.03 |
---|---|
[백준/Python] 2745번 : 진법변환 (0) | 2023.05.31 |
[백준/Python] 2563번 : 색종이 (0) | 2023.05.29 |
[백준/Python] 4344번 : 평균은 넘겠지 (0) | 2023.05.24 |
[Python/백준] 9095번 : 1, 2, 3 더하기 (0) | 2022.10.23 |
Comments