일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 |
Tags
- Foxy tutorial
- ros2 humble install
- docker foxy
- ROS2 Humble 설치
- 코드업
- Nav2 document
- foxy nav2
- Python
- ubuntu humble 설치
- nav2 doc behavior trees
- ros2 튜토리얼
- ros2 foxy tutorial
- nav2 행동트리
- ros2 foxy 튜토리얼
- ros2 foxy docker
- ros2 foxy parameters
- CodeUp
- CODEUP 6073
- ros2 param load
- ROS FOXY 튜토리얼
- ros2 param set
- ros2 foxy understanding parameters
- ros2 param dump
- ros2 param get
- ubuntu ros2 설치
- error
- ros2 param list
- nav2 behavior trees
- ros2 remapping
- 22.04 ros2 설치
Archives
- Today
- Total
BAN2ARU
[백준/Python] 1978번 : 소수 찾기 본문
https://www.acmicpc.net/problem/1978
- 풀이
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